Mysql配置位置:/etc/mysql/mysql.conf.d/mysqld.cnf
Mysql data 位置:/etc/lib/mysql
第一步:mysqld.cnf文件为readonly文件,修改无法保存,解决方案如下
在mysqld.cnf所在文件目录下,通过修改
sudo chmod 777 mysqld.cnf
第二步:完成之后,修改完成后需要通过
sudo chmod 644 mysqld.cnf
将权限修改回来,否则配置文件并不会生效
第三步:备份mysql数据库
mysqldump -h localhost -u root -p mysql > ~/mysqldump.sql
第四步:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
加上下面两句
lower_case_table_names=1
port=3306
第五步:重置数据库
sudo service mysql stop
sudo rm -rf /var/lib/mysql
sudo mkdir /var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod 750 /var/lib/mysql
下面这句打完后可能重启不了数据库,重新走一遍上面的命令,后不执行这步,最后重启服务器
sudo mysqld --defaults-file=/etc/mysql/my.cnf --initialize lower_case_table_names=1 --user=mysql --console
sudo service mysql restart
第六步:这时候初始化后的数据库密码是不知道的,所以要重置密码
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
随意位置加上 skip-grant-tables
重启MySQL服务
sudo service mysql restart
终端输入mysql进入MySQL,输入USE mysql切换至mysql数据库
mysql
USE mysql
下面这句的密码找个mysql8的数据库找个密码贴上去
Update user set authentication_string='*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B',plugin = 'mysql_native_password' where user='root';
flush privileges;
exit;
修改mysqld.cnf
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
去掉skip-grant-tables
退出重启mysql
sudo service mysql restart
Mysql正常进入,然后下面这句无所谓了
alter user 'root'@'localhost' identified by 'new_password';
下面这里可以重新导入mysql的数据,mysql库的表
use mysql
source /home/ubuntu/mysqldump.sql
flush privileges;
exit;