一、下载Mysql8.0
- 检查并更新依赖
sudo apt update
- 安装mysql-server
sudo apt install mysql-server
二、登录并修改root密码
- 查看查看mysql服务是否启动
service mysql status # Active: active (running)
- 查看默认账号密码
sudo cat /etc/mysql/debian.cnf
- 设置允许无密码登录
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 打开该文件之后在其中加入一条语句,保存并退出:
skip-grant-tables
- 重启mysql
sudo service mysql restart
- 以root用户身份登入mysql
mysql -u root -p # 无需输入密码
- 设置root用户密码
use mysql;
flush privileges; # 强制刷新
UPDATE user SET authentication_string='' WHERE user='root';
flush privileges;
ALTER user 'root'@'localhost' IDENTIFIED BY '123456'; # localhost为Host,123456为设置的root用户密码
quit;
- 再仿照第4步,将mysqld.cnf中加入的那条语句删掉
- 重启mysql,并尝试用你设置的密码登录root账户
sudo service mysql restart
- 验证密码是否修改成功
mysql -u root -p
三、设置远程连接
- 关闭防火墙
firewall-cmd --state # 查看防火墙是否关闭
systemctl stop firewalld.service
systemctl disable firewalld.service
- 设置允许所有ip登录(mysql)
mysql -u root -p
use mysql;
SELECT Host,User FROM user; # 查看用户表,若root对应的Host为localhost则需要将其设置为%,表示允许所有ip
UPDATE user SET `Host` = '%' WHERE `User` = 'root';
flush privileges;
quit; # exit;
- 设置允许所有ip登录(配置文件)
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉下面两行
# bind-address = 127.0.0.1
# mysqlx-bind-address = 127.0.0.1
- 查看3306端口是否开放
netstat -an | grep 3306 # tcp6 0 0 :::3306 :::* LISTEN
- 使用远程navicat等工具测试远程连接