问题:
1、linux下MySQL8默认是区分大小写的,如何设置不区分大小写?
坑点:在低版本如5.7等设置不区分大小写的方法,如直接在my.conf 的 [mysqld] 下添加
lower_case_table_names=1
重启mysql服务即可,但是在MySQL8.0中,直接添加此配置会导致MySQL服务重启失败。
2、MySQL如何允许远程连接访问?
3、首次MySQL安装错误,如何干净卸载,不影响下一次安装?
1、正常安装mysql
1.1、下载和安装Mysql
cd /tmp
wget http://repo.mysql.com/mysql-apt-config_0.8.22-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb
sudo apt-get update
sudo apt-get install mysql-server
1.2、找到MySQL配置文件,以下是默认安装路径
cd /etc/mysql/mysql.conf.d/
sudo vim mysqld.cnf
1.3、找到[mysqld],在下面添加如下内容:
lower_case_table_names=1 # 不区分大小写
1.4、允许远程访问,需注释如下内容:
# bind-address = 127.0.0.1
1.5、使用vim命令 shift+:,输入wq!保存文件并退出
1.6、重建并修改/var/lib/mysql目录权限
sudo rm -rf /var/lib/mysql/
sudo mkdir /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql
#初始化mysql
sudo /usr/sbin/mysqld --initialize --user=root --lower-case-table-names=1
1.7、重启mysql
sudo service mysql restart
1.8、查看root账号生成的临时密码
grep "A temporary password" /var/log/mysql/error.log
1.9、重置root密码等
#进入mysql
sudo mysql -u root -p
#查看不区分大小写是否生效,0-区分大小写,1-不区分大小写
show variables like '%case_table%';
#设置无需sudo即可访问MySQL
ALTER USER'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
#修改root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
#切换到mysql数据库
use mysql;
#设置root用户可以远程连接
update user set Host = '%' where user = 'root';
#刷新权限
FLUSH PRIVILEGES;
1.10、按照步骤即可解决问题一与问题二
2、卸载mysql
按照MySQL时因为各种原因可能需要卸载,笔者解决上述问题一和二重新安装4次MySQL,卸载干净需执行如下命令:
sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
sudo apt-get remove mysql-common
sudo apt-get autoremove --purge mysql-server-8.0
#查看是否还存在依赖的情况
dpkg --list|grep mysql
#删除有关MySQL服务的依赖
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P