Ubuntu安装mysql8并设置表名不区分大小写

一、卸载

# ---- 删除mysql的数据文件
sudo rm /var/lib/MySQL/ -R
# ---- 删除mysql的配置文件
sudo rm /etc/mysql/ -R
# ---- 自动卸载mysql(包括server和client)
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
# ---- 检查是否卸载干净
# 若没有返回,说明已完成卸载
dpkg -l | grep mysql
#首先在终端中查看MySQL的依赖项
dpkg --list|grep mysql
#卸载
sudo apt-get remove mysql-common
#卸载,看你自己安装的什么版本在卸载
sudo apt-get autoremove --purge mysql-server-8.0
#清除残留数据
dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
#再次查看MySQL的剩余依赖项,基本到这就干净了
dpkg --list|grep mysql
#如果有的话继续删除剩余依赖项
sudo apt-get autoremove --purge mysql-apt-config

二、安装数据库

# 更新 apt-get 工具
sudo apt-get update

# 自动下载安装 mysql,默认安装最新版
sudo apt-get install mysql-server

三、设置表名不区分大小写


                            参数值                        解释
0使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母在硬盘上保存表名和数据库名。名称比较对大小写敏感。在大小写不敏感的操作系统如windows或Mac OS x上我们不能将该参数设为0,如果在大小写不敏感的文件系统上将--lowercase-table-names强制设为0,并且使用不同的大小写访问MyISAM表名,可能会导致索引破坏。
1表名在硬盘上以小写保存,名称比较对大小写不敏感。MySQL将所有表名转换为小写在存储和查找表上。该行为也适合数据库名和表的别名。该值为Windows的默认值。
2表名和数据库名在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母进行保存,但MySQL将它们转换为小写在查找表上。名称比较对大小写不敏感,即按照大小写来保存,按照小写来比较。注释:只在对大小写不敏感的文件系统上适用! innodb表名用小写保存。

# 1.停掉 mysql 服务
systemctl stop mysql
# 2.删除 /var/lib/mysql (建议重要数据,提前备份)
rm -rf /var/lib/mysql 
# 3.新建 /var/lib/mysql
mkdir /var/lib/mysql
# 4.授权
sudo chown -R mysql:mysql /var/lib/mysql
# 5.配置文件 [mysqld] 组下中添加 lower-case-table-names=1
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 6.初始化 lower-case-table-names=1
sudo /usr/sbin/mysqld --initialize --user=root --lower-case-table-names=1
# 7.启动服务,
systemctl start mysql

四、设置密码


# 经过初始化后会重置密码,给一个随机的密码
grep "A temporary password" /var/log/mysql/error.log
# 登录mysql
mysql -uroot -p'0d_EGZeDo4jQ'

修改密码和密码策略

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
use mysql;
update user set plugin='mysql_native_password' where User='root';

五、开启远程访问

mysql> flush privileges;
mysql> update user set host='%' where user='root';
mysql> Grant all privileges on root.* to 'root'@'%';
mysql> flush privileges;

如果还是不能访问,修改一配置文件的IP,或者注释

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf



(1)