MySQL常用操作

安装

在CentOS7上安装MySQL Community Server 8.0

通过Yum安装的是mariadb,为安装社区标准版,做如下操作:

  1. 官网查找最新的rpm包(repo)的下载地址https://dev.mysql.com/downloads/repo/yum/
  2. 下载rpm包,对CentOS7上的MySQL8来说是这个:https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  3. 安装rpm包到系统:rpm -ivh xxxxx.rpm 其中xxxx.rpm是上面下载的rpm文件
  4. 安装mysql,注意mysql是命令行客户端,需要安装mysql-community-server
  5. 配置my.cnf文件:lower_case_table_names
    • lower_case_table_names=1
    • 此配置一定要在第一次启动MySQL前完成,否则将导致异常冲突;
    • 默认情况下:Linux=0, Windows=1, OSX=2
    • 区别在于:0,保存表名时大小写敏感(与create table语句一致),查找(比较)时亦是;1,保存表名时统一转换为小写,查找时亦统一转换为小写查询;2,保存表名时大小写敏感(与create table语句一致),查询(比较)时统一都转换为小写。
  6. 配置my.cnf文件,其它:
    • sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    • 配置此内容是为应对部分MySQL5.7与8.0的语法不兼容的问题,例如5.7的数据库在升级到8.0时,datetime字段不支持0000-00-00的字符串作为默认值(Wordpress)将提示:Invalid default value for xxxx;
    • MySQL8不支持NO_AUTO_CREATE_USER,删除此项配置即可;
  7. 启动MYSQL,常规的7.0启动服务命令:systemctl start mysqld,注意后面的d;
  8. 首次启动后会在日志中生成默认密码,通过grep ‘temporary password’ /var/log/mysqld.log查看默认密码;
  9. 修改密码ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘root_new_pwd’;
  10. 或通过mysql还是mysqladmin连接一次会自动提示修改密码;
  11. 通过update user set host =’%’ where user=’root’;允许任意IP连接;
  12. 注意上述操作需要执行flush privileges;

其它安装相关技巧

  1. rpm查询相关包:rpm -qa | grep “mysql”
  2. 删除相关rpm包:rpm -e –nodeps mariadb-server,其中mariadb-server是包名;
  3. 删除mysql的相关文件:sudo rm -rf /var/lib/mysql /var/log/mysqld.log
  4. 查看yum中的repo库:yum repolist
  5. 启用或禁用yum中某个安装包:sudo yum-config-manager –disable mysql80-community,其中–disable改为–enable即为启用;可以通过启用或禁用5.7或8.0版本来安装(当然也可直接指定版本安装);
  6. 查看密码策略:SHOW VARIABLES LIKE ‘validate_password%’;
  7. 本机启用防火墙的情况下,添加防火墙规则:firewall-cmd –zone=public –add-port=3306/tcp –permanent,还需要通过firewall-cmd –reload加载一次方能生效。
  8. 可以通过创建root@%的新用户的方式来允许远程IP连接入;需要执行如下指令:
    1. CREATE USER ‘root’@’%’ IDENTIFIED BY ‘root’;
    2. GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ WITH GRANT OPTION;

You may also like

Leave a Reply

Your email address will not be published. Required fields are marked *