更改root密码:

    首次进入数据库是不用密码的:

    image.png

    退出的话,直接输入quit或者exit即可。为了使用方便,我们把mysql加入到系统的环境变量PATH里面。

    临时修改:PATH=$PATH:/usr/local/bin/mysql/bin

    永久修改:echo "PATH=$PATH:/usr/local/bin/mysql/bin" >> /etc/profile       修改后记得source /etc/profile 让配置生效。接下来输入mysql -uroot 就能进入mysql了。

    这里解释一下图中-u 的含义,它用来指定要登录的用户,后边可以有空格,也可以无空格,root用户是mysql自带的管理员账户,默认没有密码的,那么如何给root用户设定密码?按如下操作:

    image.png

    使用mysqladmin修改密码后,在使用刚才的登录命令就报错了。

    这是我们应该这样登录:(-p加上你的密码)

    image.png

    如果忘记root密码应该怎么重置呢:

        修改mysql配置文件/etc/my.cnf,添加skip-grant

        image.png      

        然后重启mysql服务 /etc/init.d/mysqld restart

         mysql -uroot

         use mysql;

         update user set password=password('123123') where user='root';

连接MySQL:

    使用密码连接本机的数据库:mysql -uroot -p

    使用sock文件连接本机数据库:mysql -uroot -p123456 -S/tmp/mysql.sock

    命令行执行mysql查询命令:mysql -uroot -p123456 -e "show databases"

    连接远程的数据库:mysql -uroot -p -h192.168.128.28 -P3306    (-h:指定远程主机IP,-P指定mysql端口)

MySQL常用命令:

  1. 查询当前的库:show databases;

  2. 查询某个库的表:先切换库use mysql; 再执行show tables;

  3. 查看某个表的全部字段:desc show_log;    也可以使用show create table show_log\G;  直接查看建表语句

  4. 查看当前是那个用户:select user();

  5. 查看当前所使用数据库:select database();

  6. 创建一个新库:create database db1;

  7. 创建一个新表:切换库use db1; 建表:create table t1 (`id` int(4),`name` char(40));      要注意的是,字段名需要用反引号括起来 

  8. 查看数据库当前版本:select version();

  9. 查看当前mysql状态:show status;

  10. 查看mysql参数:show variables;

  11. 修改mysql的参数:show variables like 'max_connect%';  set global max_connect_errors = 1000;  show variables like 'max_connect_errors';

  12. 查看当前mysql服务器的队列:show processlist;

  13. 查看队列:show processlist;    show full processlist;

MySQL用户管理:

  •     grant all on *.* to 'user1' identified by '123456';

           all 表示所有的权限(读、写、查询、删除等等操作), *.* 前面的 * 表示所有的数据库,后面的 * 表示所有的表,identified by 后面跟密码,用单引号括起来。这里的user1指的是localhost上的user1

  • grant all on db1.* to 'user2'@'192.168.2.102' identified by '123456'; 

          指定IP的用户授权,用户和主机的IP之间有一个@,另外主机IP那里可以用%替代,表示所有主机.

  •     grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd';    //授权部分权限

  •     grant all on db1.* to 'user3'@'%' identified by 'passwd';    //所有主机授权

  •     show grants;   //查看授权

  •     show grants for user2@192.168.133.1;  //查看指定用户的授权

  • 如果用户的授权ip变了,就要执行show grants for user2@192.168.27.131; 拿到结果后,复制结果,修改ip执行(这样就实现了实现添加多个可用ip)

常用sql语句:

  1. 查询某表有多少列:select count(*) from mysql.user;    (mysql.user表示mysql库的user表;count(*)表示表中共有多少行)

  2. 查询表内所有数据:select * from mysql.db;

  3. 查询表内某些字段:select db,user from mysql.db;

  4. 查询时使用%模糊匹配:select * from mysql.db where host like '192.168.%';

  5. 插入一行:insert into db1.t1 values (1, 'abc');

  6. 更改表的某一行:update db1.t1 set name='aaa' where id=1;

  7. 清空表数据:truncate table db1.t1;

  8. 删除表:drop table db1.t1;

  9. 删除数据库:drop database db1;

MySQL数据库备份恢复:

    备份库  mysqldump -uroot -p123456 mysql > /tmp/mysql.sql

    恢复库 mysql -uroot -p123456 mysql < /tmp/mysql.sql

    备份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql

    恢复表 mysql -uroot -p123456 mysql < /tmp/user.sql

    备份所有库 mysqldump -uroot -p -A >/tmp/123.sql

    只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql