1.刚拿到服务器后需要更新库,否则可能执行第二步的时候安装不了mysql-server
apt update
2.执行命令,安装mysql
sudo apt-get install mysql-server。
执行的时候会出现另一个界面用来设置root密码。(若安装完没有设置密码,则先启动service mysql start , sudo mysql进入mysql控制台)(设置密码的问题在下方10)
3.修改root的host为”%“,使所有地址都能访问。(表路径:mysql.user)
mysql -uroot -p123456 或者 mysql -u root -p两种写法一样。只是后面的这种写法可以将密码隐藏输入。
mysql->use mysql
UPDATE user SET host='%' WHERE user='root';
再执行mysql->flush privileges使其生效。
mysql->quit
5.重启一下mysql
service mysql restart
6.查看端口是否打开 netstat -an|grep 3306
如果显示是:127.0.0.1:3306,就说明不行。
7.打开mysql配置文件vi /etc/mysql/mysql.conf.d/mysqld.cnf
这个配置文件的路径非常不一样,卡在这里半天。百度了有的说是 /etc/mysql/my.cnf。反正我的机器不是这个。
将bind-address = 127.0.0.1注释。此行最前面加上“#”就可以了。
之后在看端口,显示这样就表示可以了。
8.将阿里云的防火墙打开,添加规则,将3306端口开放。
我这个服务器是不是
!!
ECS服务器的配置有点不一样。自行摸索吧。总之找到“添加规则”就可以了。
9.然后在windows上使用navicat,连接上了数据库。
配置的时候,使用navicat连接,曾报2003,和10038连接时错误。已解决。
2003--好像是配%的时候解决。
10038--应该是注销了bind-address = 127.0.0.1后解决的。
10.问题记录
ubuntu18.04mysql安装后每次需要sudo登录的问题
> sudo mysql //先用sudo进入mysql控制台
mysql> use mysql;
mysql> update user set plugin = 'mysql_native_password' where user = 'root'; //使用mysql自带密码认证(默认plugin不是"mysql_native_password"的情况)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; (这里单引号内的password填自己设置的密码)[参考资料6,7]
参考资料:
- Ubuntu 16.04下开启Mysql 3306端口远程访问
- 允许远程链接mysql,开放3306端口
- 阿里云服务器 ECS 访问不了公网 ip 可能的原因及解决方法
- linux 下 mysql 常用命令
- 终端mysql修改密码的方法-----------mysql5.7以上版本修改出问题时
- Ubuntu 18.04版本中安装Mysql后,Mysql每次访问需要加sudo的问题
- Ubuntu安装mysql需要sudo进入