日常操作
修改密码:mysqladmin -u root -p password 123 回车后输入原来的密码
查看创建表语句 show create table user;
查看某个表有多少字段 desc user;
查看一个表中有多少行 select count(*) from user;
查看一个表的前多少行 select * from user limit 2;
将一个旧的表名命名成一个新的表名,alter table user rename users;
删除一个表 drop table user;
将什么权限,那个数据库,那个表 授权用户的连接地址 和密码(远程访问授权)设置完成后需要 flush privileges; 命令刷新权限
grant all on test.* to root@'192.168.10.110' identified by '1';
mysql远程登录命令: mysql -h192.168.10.127 -uroot -p1
在mysql数据库中修改用户名密码,user表,如下
update user set authentication_string=password('123'),user='wd' where host='192.168.10.110';
修改用户名称后,需要从新给用户加权限
修改某个表的编码格式:alter table user default character set utf8;
修改某个表的某个字段的编码格式 且不为空:
alter table info change value value varchar(10) character set utf8 not null;
数据库备份:mysqldump -uroot -p test>/home/wd/projects/haha.sql 输入密码 备份完成
删除数据库:drop database test;
创建数据库并指定编码格式:create database test charset=utf8;
数据库恢复:
方法一:创建数据库test,退出执行,mysql -uroot -p test<haha.sql
方法二:进入mysql 创建数据库test,use test; 然后source haha.sql; 执行语句
授权后远端无法访问解决办法
1.检查端口是否开发:netstat -an|grep 3306 如下图则未打开其他地址连接
2.打开配置文件:vim /etc/mysql/mysql.conf.d/mysqld.cnf
确定端口为3306,或者其他,注释掉bind-address 地址绑定
3.这一步可以不操作,查看mysql表user的权限,如下图权限已经添加。可以将host修改为%,则来自所有地址的root用户都可以连接,很危险,不推荐。
4.重启服务器。service mysql restart
查看3306端口连接状态,如下图连接已允许我上面grant授权的地址使用。
提示:如果使用Navicat等工具连接会报错,但不用理会,它们默认扫描所有数据库,但我只开放了test数据库的授权,将错误插掉。以后登录就不在提示了。
无法中文保存解决方法
查看数据库支持编码格式命令:show variables like '%char%';
1.打开文件vim /etc/mysql/mysql.conf.d/mysqld.cnf 修改参数[mysqld],在它的下面添加一条character-set-server=utf8,重启服务再建数据库就可以使用中文了。
或者设置
set character_set_server=utf8;
set character_set_database=utf8;
2.建表的时候在最后面添加 字符集选项 default charset=utf8
create table analysis(city varchar(20),companySize varchar(20),education varchar(20))default charset=utf8;
忘记密码怎么办
关闭mysql:/etc/init.d/mysql stop
1.执行下面命令,跳过权限表
/usr/bin/mysqld_safe --user=mysql --skip-grant-tables &
如果不成功:执行这两条命令,后执行上面这条命令
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
执行成功后直接执行 mysql 可以直接进入数据库
用上文提到的修改mysql库的用户密码方法修改密码。
quit 退出后,懒的话就重启电脑,不懒就用下面的方法杀死进程后重启服务
查看进程命令: ps -ef |grep safe
杀死进程命令:kill -9 pid; pid为上面查看到的进程id
重启服务:/etc/init.d/mysql start