场景描述
因为想远程连接安装在阿里云上的数据库,但是在 iptables 开放了端口,阿里云也设置了安全组的规则之后,还是没能连接上。查询了网上后,大致上知道安装的MySQl数据库没有开放远程连接。
一定需要注意的是,我已经开放了端口并设置了安全组。
解决步骤
- 连接数据库
mysql -u$user -p$password
$user
是用户名,$password
是密码.
- 通过MySQL命令行创建用户用于远程连接
GRANT ALL PRIVILEGES ON *.* TO '$username'@'%' IDENTIFIED BY '$password' WITH GRANT OPTION;
$username
表示用户名,%
表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,$password
表示密码。
- 在MySQL命令行刷新缓存信息
flush PRIVILEGES;
- 修改配置文件
因为大家装数据库的方式不同,所以配置文件的位置有可能也不同。有的人的配置文件的路径是/etc/mysql/my.cnf,有的人直接是在/etc/my.cnf。所以最重要的是要找到MySQL的这个配置文件,文件名是my.cnf。下面是我的示范操作
vim /etc/my.cnf
我的配置文件是这样的
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
你看下文件中有没有bind-address这个属性。如果没有的话,就加上;如果有,就修改。更改的内容如下
bind-address = 0.0.0.0
- 重启一下 MySQL
/etc/init.d/mysql restart
- 完结