安装
- 使用apt-get而不是apt下载mysql
sudo apt-get update
sudo apt-get install mysql-server
- 查看mysql的服务状态
sudo systemctl status mysql
暴露公网端口
3. 查看3306端口的占用情况
netstat -ano |grep "3306"
如果看到的是
tcp LISTEN 0 70 127.0.0.1:33060 0.0.0.0:*
tcp LISTEN 0 151 127.0.0.1:3306 0.0.0.0:*
或者是输入
grep bind-address /etc/mysql/mysql.conf.d/mysqld.cnf
#响应为
# bind-address = 127.0.0.1
# mysqlx-bind-address = 127.0.0.1
就说明你的3306只能在本地回环访问,外网是无法访问的,就算你改了防火墙也不可以访问,修改mysql的bind-address为0.0.0.0
vim /etc/mysql/mysql.conf.d/mysqld.cnf
把127.0.0.1改成0.0.0.0
再在mysql输入
update user set host='%' where user ='root';
修改mysql的用户host
select host,user from user;
来观察输出
设置密码可访问
此时可能会出现你在workbench登录
如果出现了这个而你又没有设置密码(或者你以为设置了)
需要配置Mysql使用密码访问的配置
在终端输入
mysql -u root -p
如果你不输入密码就能登录就说明没有密码,在控制台输入
SELECT user, host, authentication_string FROM mysql.user;
可以看到不存在root的auth_string 此时你可以输入
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
来修改你的mysql可以接收密码登录 最终的检验是当在控制台尝试登录mysql必须输入密码,随后就可以在服务器登录了