基础环境准备:

配置好基本的centos7环境

使用的MySQL为二进制免编译包安装

  1. # 永久生效
  2. [root@lnmp ~]# vim /etc/profile
  3. PATH=$PATH:/usr/local/mysql/bin
  4. #刷新参数
  5. [root@lnmp ~]# source /etc/profile

设置密码

  1. # 在知道或者是没有密码的情况下配置密码
  2. # 二进制免编译安装的MySQL是没有密码的,首先设置一个密码
  3. [root@lnmp ~]# mysqladmin -uroot password '000000'
  4. # 重置密码
  5. [root@lnmp ~]# vim /etc/my.cnf
  6. # 在mysqld下添加skip-grant这一行
  7. [mysqld]
  8. skip-grant # 忽略用户认证
  9. # 重启服务生效
  10. [root@lnmp ~]# service mysqld restart
  11. # 免密登录
  12. [root@lnmp ~]# mysql -uroot
  13. mysql> use mysql
  14. mysql> select * from user;
  15. # 更新密码
  16. mysql> update user set password=password('000000') where user='root';
  17. Query OK, 4 rows affected (0.00 sec)
  18. Rows matched: 4 Changed: 4 Warnings: 0
  19. [root@lnmp ~]# vim /etc/my.cnf
  20. # 去掉skip-grant字段
  21. # 重启生效
  22. [root@lnmp ~]# service mysqld restart
  23. Shutting down MySQL.. SUCCESS!
  24. Starting MySQL. SUCCESS!
  25. # 使用新密码登录
  26. [root@lnmp ~]# mysql -uroot -p000000

链接MySQL

  1. # 直接连接
  2. [root@lnmp ~]# mysql -uroot -p000000
  3. # 远程连接
  4. [root@lnmp ~]# mysql -uroot -p000000 -h ip -P3306
  5. # 和直接连接一样
  6. [root@lnmp ~]# mysql -uroot -p000000 -S /tmp/mysql.sock
  7. # 链接以后进行一些操作
  8. [root@lnmp ~]# mysql -uroot -p000000 -e "show databases;"
  9. Warning: Using a password on the command line interface can be insecure.
  10. +--------------------+
  11. | Database |
  12. +--------------------+
  13. | information_schema |
  14. | mysql |
  15. | performance_schema |
  16. | test |
  17. +--------------------+

image.png

MySQL常用命令

MySQL命令不区分大小写, 注意查看字母最后是否+s

  1. # 查询库
  2. mysql> show databases;
  3. # 切换库
  4. mysql> use mysql;
  5. # 查看库里的表
  6. mysql> show tables;
  7. # 查看表里的字段
  8. mysql> desc tb_name;
  9. # 查看建表语句
  10. mysql> show create table tb_name\G;
  11. # 查看当前用户
  12. mysql> select user();
  13. # 查看当前使用的数据库
  14. mysql> select database();
  15. # 创建库
  16. mysql> create database db1;
  17. # 创建表
  18. mysql> use db1;
  19. create table t1(`id` int(4), `name` char(40));
  20. # 删除表
  21. mysql> drop table table_name;
  22. # 查看当前数据库版本
  23. mysql> select version();
  24. # 查看数据库状态
  25. mysql> show status;
  26. # 查看各参数
  27. mysql> show variables;
  28. # 查看指定参数
  29. mysql> show variables like 'max_connect%';
  30. # 修改参数
  31. mysql> set global max_connect_errors=1000;
  32. # 查看队列
  33. mysql> show processlist; show full processlist;

MySQL用户管理

root用户为超级管理员,不能让所有的连接都是用root,所以需要授权
创建以一个用户,对某一个库,或者对某一个表授权。

  1. # grant 授权
  2. # all 所有权限 增删改查
  3. # on 在哪个库 *.* 表示对所有的库,所有的表
  4. # to 对哪一个用户, 也可以指定来源IP
  5. # identified 认证方式, 密码
  6. grant all on *.* to 'user1' identified by 'passwd';
  7. # 使用ip才能登陆(单个IP)
  8. grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd';
  9. # 使用某个段登录
  10. grant all on *.* to 'user1'@'192.168.200.%' identified by 'passwd';
  11. # 使用sock登录
  12. grant all on *.* to 'user1'@'localhost' identified by 'passwd';
  13. grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd';
  14. grant all on db1.* to 'user3'@'%' identified by 'passwd';
  15. # 默认查看root的授权
  16. show grants;
  17. # 查看某个用户的授权
  18. show grants for user2@192.168.133.1;
  19. # 命令历史文件
  20. /root/.mysql_history

MySQL常用命令

如果不是想专业从事DBA可以不用学太细,
查询少使用’* ‘ 影响效率。
要掌握基本的增删改查。
删除数据需要谨慎!

  1. # 查看行数
  2. mysql> select count(*) from mysql.user;
  3. # 查看mysql数据库db表所有内容
  4. mysql> select * from mysql.db;
  5. # 查看 db这一个字段
  6. mysql> select db from mysql.db;
  7. # 查看 db,user这两个字段
  8. mysql> select db,user from mysql.db;
  9. # 查看 host字段 满足地址为192.168.字段的信息
  10. mysql> select * from mysql.db where host like '192.168.%';
  11. # 在db1数据库t1表插入数据
  12. mysql> insert into db1.t1 values (1, 'abc');
  13. # 更新 改
  14. mysql> update db1.t1 set name='aaa' where id=1;
  15. # 删除一行数据
  16. mysql> delete from db1.t1 where id=3;
  17. # 清空表,但是保存表结构
  18. mysql> truncate table db1.t1;
  19. # 删除表
  20. mysql> drop table db1.t1;
  21. # 删除库
  22. mysql> drop database db1;

MySQL备份恢复

mysqldump备份
mysql恢复
恢复过程 删除表,创建表,插入数据

  1. # 备份库
  2. mysqldump -uroot -p123456 mysql > /tmp/mysql.sql
  3. # 恢复库
  4. mysql -uroot -p123456 mysql < /tmp/mysql.sql
  5. # 备份表
  6. mysqldump -uroot -p123456 mysql user > /tmp/user.sql
  7. # 恢复表
  8. mysql -uroot -p123456 mysql < /tmp/user.sql
  9. # 备份所有库
  10. mysqldump -uroot -p123456 -A >/tmp/123.sql
  11. # 只备份表结构
  12. mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql