Linux服务器MySQL8.0设置不区分大小写

🔔以下操作基于服务器Linux发行版本为Fedora、RedHat和CentOS 并且已经通过yum方式已经安装过MySQL8.0

首先需要了解到的是mysql8.0不支持在初始化过数据库后,通过编辑my.cnf配置文件,添加lower_case_table_names=1然后重启mysql服务就直接生效,8.0之前支持这种方式,mysql8.0设置不区分大小写需要先把数据库目录删除,重新初始化数据库.

备份数据库

  1. 使用mysqldump命令备份数据库的所有库,输入数据库密码后开始备份,3306是mysql端口
    1
    mysqldump -uroot -p -P 3306 --all-databases --column-statistics=0 > /tmp/all.sql
    

编辑配置文件

  1. 依次执行如下命令,将数据库配置文件复制一份,增加配置lower_case_table_names=1,对大小写不敏感
1
2
cp /etc/my.cnf $HOME
sed -i '/\[mysqld\]/a lower_case_table_names=1' $HOME/my.cnf

删除原数据库

  1. 查找已安装的MySQL-Server,确保已经安装了MySQL-Server8.0,正常应该是没得问题的,毕竟服务都启动了…
    1
    yum list installed | grep mysql-community-server
    
  2. 停止MySQL服务
    1
    systemctl stop mysqld
    
  3. 删除原数据库数据
    1
    rm -rf /var/lib/mysql /var/log/mysqld.log
    

重新初始化MySQL

  1. 将修改后的配置文件覆盖
    1
    cp $HOME/my.cnf /etc/my.cnf
    
  2. 重启MySQL服务
    1
    systemctl start mysqld
    
  3. 查看MySQL的默认密码
    1
    grep 'temporary password' /var/log/mysqld.log | awk '{print $4}'
    
  4. 按照提示输入生成的默认密码进入MySQL
    1
    mysql -uroot -p
    
  5. 修改默认密码并配置可远程连接,新密码太简单了会设置失败
    1
    2
    3
    4
    5
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    use mysql;
    update user set host = '%' where user = 'root';
    FLUSH PRIVILEGES;
    exit
    
  6. 输入密码导入备份的数据
    1
    mysql -uroot -p </tmp/all.sql
    
  7. 使用数据库工具查看数据库表名是否全部为小写了
本文已结束 ❤ 感谢阅读
觉得文章不错,赞赏站长一包辣条( •̆ ᵕ •̆ )◞ ❤
0%