Ubuntu18.04安装MySQL5.7 并配置远程登录、utf8mb4字符集
2019/11/19, Ubuntu Server 18.04,MySQL 5.7
摘要:Ubuntu Server 18.04 安装MySQL 5.7 并配置远程登录、utf8mb4字符集
由于MySQL官方下载最新版8.0速度很慢,使用阿里云软件源中的MySQL5.7版本
配置软件源
使用阿里云镜像源-配置教程
安装MySQL5.7
更新软件源并安装mysql-server(默认5.7.28版本,可以使用apt-cache madison mysql-server
命令查看mysql-server在镜像源中的版本)
sudo apt-get update
sudo apt-get install -y mysql-server
安装完成后,可以使用
mysql -V
查看当前MySQL版本
配置MySQL
MySQL 5.7安装完成后普通用户不能进mysql,原因:root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password
登录数据库
使用root权限登录MySQL(如果无法使用root权限登录,可以使用安装时默认生成的账户,教程)
sudo mysql
修改密码及登录设置
#切换mysql数据库
use mysql;
#修改root账号密码
update user set authentication_string = password('你的密码'), password_expired = 'N', password_last_changed = now() where user = 'root';
#不限制root账户登录来源(任意地址都能登录)
update user set host='%' where user='root';
#使用原生密码验证登录
update user set plugin="mysql_native_password";
#刷新权限
flush privileges;
#退出
exit;
修改登录来源地址
修改配置文件,注释掉bind_ip_address
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
找到bind-address = 127.0.0.1
,注释掉该行:
修改完成后,MySQL登录来源不再限于127.0.0.1
修改字符集
MySQL对于my.cnf配置文件的搜索顺序是/etc/my.cnf
/etc/mysql/my.cnf
~/.my.cnf
。
其中/etc/mysql/my.cnf
里有两行文字:
1.注释中写了复制本文件到/etc/mysql/my.cnf
可以作为全局设定,复制到~/.my.cnf
可以作为用户指定设定
2.红色框中,指定包含了/etc/mysql/conf.d/
/etc/mysql/mysql.conf.d/
两个文件夹中的配置文件(includedir是包含文件夹的意思,但是前面又加了个"!",验证发现这两个文件夹的配置肯定是包含的,但是不明白为什么要有感叹号,像是编程中的“非”的意思)
我这里暂时把/etc/mysql/conf.d/mysql.cnf
作为主配置文件,如有问题随时修改该文章
sudo vi /etc/mysql/conf.d/mysql.cnf
将以下内容写入文件:
[mysqld]
character-set-server = utf8mb4
#关闭dns解析(注意:这会造成只能使用ip远程连接MySQL)
skip-name-resolve
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
保存退出。
配置文件中,添加了skip-name-resolve
关闭了dns域名解析(因为内网环境无法解析,参考文档)
重启MySQL服务
sudo service mysql restart
此时本地使用mysql -u root -p登录或远程登录都可以(注意是否开启防火墙以及防火墙是否开启3306端口)