ubuntu18安装mysql5.7并配置远程连接
系统及软件版本:ubuntu18,mysql5.7
本文也是参考了若干教程,踩了不少坑,不过忘了保留对方的链接,没法直接引路了,抱歉
注意进行如下操作时都推荐在root权限下进行,否则需要在指令前加上sudo
1. 安装mysql的基础内容
此前可先手动进行apt-get的更新:apt-get update
apt-get install mysql-server
apt-get install mysql-client
apt-get install libmysqlclient-dev
2. 安装后需要进行密码等内容的配置
指令:mysql_secure_installation
接下来的命令行会设置一些内容,包括root的密码、是否允许远程连接,是否需要删除匿名用户等内容,看情况选择即可
3. 检查是否安装成功
设置完毕后可以检查mysql的服务状态
netstat -tap | grep mysql
如果mysql的socket处于listen状态即可,表示成功运行
4. 检测成功后需要进行mysql内部的一些设置
利用mysql -u root -p再输入密码进入mysql
权限修改的话可以针对root直接设置,也可以针对部分连接情况设置
这里为了方便直接对root进行了全局设置
grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;
如上指令相当于给root授予在任意主机(%)访问任意数据库的所有权限
而如果要单独设置某个用户的权限从本地到所有主机,则直接update某个用户的权限即可,如下所示:
update user set host='%' where user='某用户名' and host='localhost';
设置后可以执行flush privileges;,使刚才的设置生效
如上配置的是基础内容,但需要远程连接还需要额外配置
5. root登录方式的修改
首先是root的密码:
因为mysql5.7版本中root的默认连接方式,或者说plugin为auth_socket,需要通过设置密码来修改为mysql_native_password,即利用密码登录
如果要查看的话可在mysql数据库中的user表看到
具体设置为密码登录指令如下:
update mysql.user set authentication_string=PASSWORD('root的密码'), plugin='mysql_native_password' where user='root';
配置mysql数据库下user表中root的配置
但注意,该步有可能由于密码不符合MySQL的标准设置失败,此时可以通过降低密码强度来规避,语句如下:
set global validate_password_policy=LOW;
设置后一般再次执行前面的语句就可以成功,此时mysql内部的配置就结束了
修改后同样可以利用flush privileges;来使配置生效
6. mysql的开放,文件修改
此外还需要进行mysql的文件配置
文件为:/etc/mysql/mysql.conf.d/mysqld.cnf
需要将其中的bind-address = 127.0.0.1注释掉,或者后面的内容修改为0.0.0.0
修改并保存后注意在命令行执行service mysql restart来使修改的内容生效
7. 端口的开放
最后就是注意机器的3306端口是否开启
如果已经开放,便可利用工具和前面设置的密码访问了