系统:
- Ubuntu 16.04
- MySQL 5.7.27
安装:
Ubuntu 下通过apt安装
# 更新软件包索引
apt-get update
# 安装 mysql-server
sudo apt-get install mysql-server
安装好后执行以下命令确认 mysql正常运行
service mysql status
上面默认安装了服务器上的最新版本,我们也可以指定版本安装
# 查询服务器上所有来源可安装的版本
apt-cache madison mysql-server
# 安装来源中存在的版本
apt-get install mysql-server=5.7.11
远程连接使用:
用客户端工具连接,如果很长时间未响应,并提示Operation timed out
连接超时,检查服务器的防火墙和服务商的安全组,将3306
(默认)端口放行
# ubuntu 默认防火墙
ufw allow 3306
如果服务器响应很快,并提示Connection refused
连接被重置的错误,则应修改以下配置文件,并将该行注释
bind-address = 127.0.0.1
#/etc/mysql/mysql.conf.d/mysqld.cnf
# 重启mysql服务
service mysql restart
如果提示以下
Host '114.*.*.*' is not allowed to connect to this MySQL server
或
Access denied (权限失败)
则是mysql权限的问题,在服务器上用root用户登陆mysql
mysql -u root -p
新建可远程连接用户
create user 'test'@'localhost' identified by '123456';
# 这里 test 是新用户名,localhost是允许登陆的地址,可以换为具体IP,或者 % 允许所有外网连接,如下
create user 'test'@'%' identified by '123456';
# 注意@不要在引号里
修改已有用户使其可远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
# 把root用户改为 % ,并赋予所有数据库权限
删除用户
drop user 'username'@'locaclhost'
给用户分配对应数据库权限
grant all privileges on `test`.* to 'test'@'%' identified by '123456' with grant option;
# 给 test@% 用户分配了 test 数据库权限
# 数据库名要用反引号包裹
修改完配置刷新数据库
flush privileges;