前言
最近翻新一些老项目,于是随便在某个Ubuntu虚拟机上安装个MySQL5.7数据库,结果安装了一天。因此记录一下,不然下次又得花不少时间来安装。
一、彻底删除Ubuntu上的MySQL
(1)删除MySQL数据文件
sudo rm /var/lib/mysql/ -R
(2)删除MySQL配置文件
sudo rm /etc/mysql/ -R
(3)查看MySQL的依赖项,有多少依赖项,就删除多少依赖项
dpkg --list|grep mysql
sudo apt-get remove mysql-common
sudo apt-get autoremove --purge mysql-server
sudo apt-get purge mysql-community-server
sudo apt-get autoremove --purge mysql-server-5.7
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
sudo apt-get install apparmor
(4)查看是否还有MySQL相关文件,有则 rm -rf 这些文件
whereis mysql
which mysql
(5)最后执行以下命令都是空内容才为彻底删除了
dpkg --list|grep mysql
whereis mysql
which mysql
二、在Ubuntu上重装MySQL
(1)安装MySQL服务器和客户端(注意:安装过程会要求设置密码,输入两次,前后密码需保持一致,比如:123456Aa)
sudo apt-get install mysql-server mysql-common
(2)运行MySQL初始化安全脚本
sudo mysql_secure_installation
(3)查看MySQL状态
systemctl status mysql.service
(4)启动MySQL服务
systemctl start mysql.service
(5)重启MySQL服务(注意:重启后密码策略的长度和级别会更改为 MEDIUM 和 8)
systemctl restart mysql.service
(6)开启开机自启动MySQL服务
systemctl enable mysql.service
(7)关闭开机自启动MySQL服务
systemctl disable mysql.service
(8)关闭MySQL服务
systemctl stop mysql.service
(9)MySQL的配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf
三、配置防火墙(若未安装防火墙,直接跳过)
(1)查看防火墙状态
firewall-cmd --state
(2)开启指定端口(–permanent表示永久生效,若无此参数,则只能维持当前服务生命周期内,重新启动后失效)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
(3)重新加载防火墙
firewall-cmd --reload
(4)重启|停止|开启|永久关闭
systemctl restart|stop|start|disable firewalld.service
四、配置MySQL远程访问
(1)首先使用控制台进行登录
mysql -u root -p
(2)查看密码策略配置
SHOW VARIABLES LIKE 'validate_password%';
(3)设置密码策略级别为LOW
set global validate_password_policy=LOW;
(4)设置密码长度为8
set global validate_password_length=8;
(5)再次查看密码策略配置
SHOW VARIABLES LIKE 'validate_password%';
(6)修改 root 用户与 localhost 主机 对应的密码(注意:密码长度应与上面设置的长度一样)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456Aa';
(7)授权 root 用户与 % 主机(%代表支持所有远程主机)通过密码,进行数据库点数据表操作(即:*.*)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456Aa' WITH GRANT OPTION;
(8)授权 root 用户与 x.x.x.x 主机通过密码,进行数据库点数据表操作(即:*.*)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'x.x.x.x' IDENTIFIED BY '123456Aa' WITH GRANT OPTION;
(9)更新授权
flush privileges;
(10)查看授权的记录列表
select User, Host from mysql.user;
(11)按照上述操作完成后,依然连接不成功,最后修改配置文件【/etc/mysql/mysql.conf.d/mysqld.cnf】,将【bind-address = 127.0.0.1】注释掉,然后重启MySQL服务【systemctl restart mysql.service】,再次使用 Navicat 测试连接,终于连接成功!