喵♂呜 的博客

一个刚毕业就当爹的程序猿 正在迷雾中寻找道路...

MySQL常用配置

常用的数据库操作和安装过程

  • MySQL 快速安装脚本

    1
    wget -qO- https://blog.yumc.pw/attachment/script/shell/mysql.sh | bash
  • CentOs7以上服务器安装MySQL

    • 下载官方源 http://dev.mysql.com/downloads/repo/yum/
    • 安装源 sudo rpm -Uvh mysql57-community-release-el6-n.noarch.rpm (需要修改名称为下载的文件名称)
    • 查看可用包 yum repolist all | grep mysql
    • 安装数据库 sudo yum install mysql-community-server
    • 启动数据库 sudo service mysqld start
    • 查看数据库状态 sudo service mysqld status
  • MySQL 5.7 以上版本修改密码

    • 从日志获得临时密码 sudo grep 'temporary password' /var/log/mysqld.log
    • 登录数据库 mysql -uroot -p
    • 修改密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
      • 如果提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 说明密码强度不够
  • MySQL 5.7 以上版本关闭密码强度效验

    • 打开配置文件my.cnf vi /etc/my.cnf
    • [mysqld] 下添加 validate_password=off
    • 进入MySQL 执行下列命令
      1
      2
      SET global validate_password_policy=0;
      SET global validate_password_mixed_case_count=2;
    • 重启服务器 sudo service mysqld restart
  • 用户相关操作

    注意 下列操作必须在第一次改完密码之后 退出 重新登录之后才能进行 不然会一直提示 ERROR 1396 (HY000)

    • 创建用户: CREATE USER 'root'@'%' IDENTIFIED BY 'root';
      • 如果出现错误 ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'%'
      • 说明 用户已经存在 可以执行 DROP USER 'root'@'%'; 删除
    • 添加权限: GRANT ALL ON *.* TO 'root'@'%';
    • 刷新权限: FLUSH PRIVILEGES;
  • 修改最大链接数

    • max_connections=100 改为需要的值
  • 开启慢查询日志

    • long_query_time 设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志,缺省值为10s
    • slow_query_log 指定是否开启慢查询日志
    • log_slow_queries 指定是否开启慢查询日志(该参数要被slow_query_log取代,做兼容性保留)
    • slow_query_log_file 指定慢日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log
    • min_examined_row_limit 查询检查返回少于该参数指定行的SQL不被记录到慢查询日志
    • log_queries_not_using_indexes 不使用索引的慢查询日志是否记录到索引
    • 修改 my.cnf 开启慢查询
      1
      2
      3
      long_query_time = 1
      slow_query_log = 1
      slow_query_log_file = /tmp/mysql_slow.log

      注意: 日志文件的所有者必须为 mysql:mysql 或者赋予 777 权限

欢迎关注我的其它发布渠道