1. 首先彻底清理系统中已安装的MySQL:
# 停止MySQL服务 sudo systemctl stop mysql # 卸载MySQL软件包 sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-* # 删除MySQL配置和数据文件 sudo rm -rf /etc/mysql /var/lib/mysql sudo rm -rf /var/log/mysql sudo rm -rf /var/log/mysql.* sudo rm -rf /var/lib/mysql-files # 清理依赖包 sudo apt autoremove sudo apt autoclean
2. 清理残留配置
# 检查并删除残留的MySQL相关文件 sudo find / -name "*mysql*" -type f 2>/dev/null # 清理APT缓存 sudo apt update
3. 重新安装MySQL
# 更新软件包列表 sudo apt update # 安装MySQL服务器 sudo apt install mysql-server # 启动MySQL服务 sudo systemctl start mysql sudo systemctl enable mysql
4. 安全配置MySQL
sudo mysql_secure_installation
按照提示完成以下安全设置:
1.设置root密码
2.移除匿名用户
3.禁止root远程登录
4.删除测试数据库
5.重新加载权限表
5. 验证安装
# 检查MySQL服务状态 sudo systemctl status mysql # 登录MySQL sudo mysql -u root -p # 在MySQL中查看版本信息 SELECT VERSION();
6. 配置远程访问(可选)
-- 创建远程访问用户 CREATE USER 'username'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
7. Ubuntu系统修改mysql datadir除了my.cnf文件(权限等)外, 还要配置AppArmor权限
此外: 修改了 datadir 目录后, 当目录内容为空, 启动是失败的,这样要把原来目录的文件复制过来(重要!!!).
# 复制所有文件(保留权限、属性) sudo rsync -av /var/lib/mysql/ /data/mysql/ # 或使用 cp(但需加 -a 保留属性) # sudo cp -a /var/lib/mysql/* /data/mysql/
编辑 /etc/apparmor.d/usr.sbin.mysqld,将:
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
修改为(或在后面添加):
/data/mysql/ r,
/data/mysql/** rwk,
编辑 /etc/apparmor.d/abstractions/mysql,将:
/var/lib/mysql{,d}/mysql{,d}.sock rw
修改为(或在后面添加):
/data/mysql{,d}/mysql{,d}.sock rw
重启相关服务
sudo service apparmor restart
sudo systemctl start mysql配置完成后,可以通过以下命令验证:
mysql -u root -p -e "SHOW GLOBAL VARIABLES LIKE 'datadir';"
本文为宁若水!原创文章,转载无需和我联系,但请注明来自[若水]博客 www.lalaya.net
