13.1 设置更改root密码
进入MySQL的命令:
#/usr/local/mysql/bin/mysql -uroot
首次进入是不用密码的,退出输入quit或者exit即可。
我们把MySQL的路径加入环境变量中:
#PATH=$PATH:/usr/local/mysql/bin
然后设置为开机加载:
#echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
然后刷新一下:#source /etc/profile,再进入MySQL:
-u用来指定要登录的用户,后面可加可不加空格。root用户是MySQL自带的管理员账户,默认是没有密码的,那么如何给root设定密码呢?
mysqladmin -uroot password '123456',这样即给root用户设定了密码123456。此时再登录MySQL的话,就会报错,要求重新输入密码登录:
那么,如果在不知道root密码,或者忘记root密码的情况下,怎么去登录MySQL呢?
我们首先编辑配置文件/etc/my.cnf,在[mysqld]里面添加skip-grant(意思是忽略授权),然后重启mysql服务:/etc/init.d/mysqld restart,此时再去登录MySQL就不需要密码了。
然后选择mysql表:
查看root用户的密码(是加密的):
更改root用户密码为123456:
再把配置文件/etc/my.cnf里的[mysqld]下的skip-grant删除掉,保存后重启mysql服务。再登录MySQL,就会要求输入密码,此时输入刚才更改的密码登录即可。
13.2 连接mysql
mysql -uroot -p123456
mysql -uroot -p123456 -h127.0.0.1 -P3306用于连接网络中某一主机上的MySQL
mysql -uroot -p123456 -S/tmp/mysql.sock适合本机登录使用。
mysql -uroot -p123456 -e "show databases"一般用在shell脚本中。
13.3 mysql常用命令
1、查询当前库:show databases;
2、查询某个库的表:切换表use mysql;列出表show tables;
3、查看某个表的全部字段:desc db;如果想显示的信息更详细,可以在后面加上\G
4、查看当前是哪个用户:select user();
5、查看当前所使用的数据库:select database();
6、创建一个新库:create database db1;
7、创建一个新表:切换到表db1 use db1;create table t1 (`id` int(4), `name` char(40));
8、查看当前数据库的版本:select version();
9、查看MySQL的当前状态:show status;
10、查看MySQL的参数:show variables;
11、修改MySQL的参数(举例来说,修改参数max_connect_errors):show variables like 'max_connect%'; set global max_connect_errors = 1000; show variables like 'max_connect_errors';
12、查看当前MySQL服务器的队列:show processlist;
13.4 mysql用户管理
grant all on *.* to user1 identified by '123456';
其中,all表示所有的权限(读、写、查询、删除等);.有两个*,第1个*表示所有的数据库,后者表示所有的表;identified by 后面跟密码,用单引号括起来。这里的user1特指localhost上的user1。
如果是给网络其他机器上的某个用户授权,则要执行如下命令:
grant all on db1.* to 'user2'@'192.168.6.120' identified by '123123';
其中,用户和主机的IP之间有一个符号@。另外,命令中主机IP可以用%替代,表示所有主机,如下所示:
grant all on db1.* to 'user3'@'%' identified by '112233';
13.5 常用sql语句
1、查询语句:
(1)、select count(*) from mysql.user;
mysql.user表示MySQL库的user表,count(*)表示表中共有多少行。
(2)、select * from mysql.db;
表示查询MySQL库的db表中的所有数据。也可以查询单个字段或者多个字段:
select db from mysql.db;
select db,user from mysql.db;
也可以使用万能匹配符%:
select * from mysql.db where host like '192.168.%';
2、插入一行
insert into db1.t1 values (1, 'abc');
3、更改表的某一行
update db1.t1 set name='zhangjin' where id=1;
4、清空某个表的数据
truncate table db1.t1;
5、删除表
drop table db1.t1;
6、删除数据库
drop database db1;
13.6 mysql数据库备份恢复
1、MySQL备份
备份库:mysqldump -uroot -p'123456' mysql > /tmp/mysql.sql
备份表:mysqldump -uroot -p'123456' mysql user > /tmp/user.sql
备份所有库:mysqldump -uroot -p -A > /tmp/123.sql
只备份表结构:mysqldump -uroot -p'123456' -d mysql > /tmp/mysql.sql
2、MySQL恢复
恢复库:mysql -uroot -p '123456' mysql < /tmp/mysql.sql
恢复表:mysql -uroot -p'123456' mysql < /tmp/user.sql