准备实践下mysql读写分离,所以先在云服务器上安装mysql。
服务器操作系统:Ubuntu Server 16.04.1 LTS 64位
1. 安装mysql
(1). sudo apt-get install mysql-server
(2). apt-get isntall mysql-client
(3). sudo apt-get install libmysqlclient-dev
安装过程中会提示设置root密码,设置完成后不需要通过修改mysql配置文件来绕过msyql鉴权,然后再修改root密码,很方便。安装完成,登录:mysql -u root -p ###,可以正常登录。
2.通过navicate连接mysql
通过本地navicate连接mysql服务器mysql报错:Can't connect to MySQL server on '#.#.#.#'(61 "Connection refused")
尝试(1):查看服务器防火墙是否屏蔽了3306端口
执行:sudo ufw status
结果:Status: inactive,防火墙没开。。。。。。
尝试(2):本机id是否有访问 服务器数据库的权限
登录mysql
执行:select host,user from user;
果然没有,添加本机权限:update user set host='%' where user='root' limit 1; root用户去掉访问ip限制,再查:
已经添加,再次尝试连接,依然失败。
尝试(3):查看mysql是否绑定了本地地址
查看3306端口监听情况:
netstat -an |grep3306
结果:
根据网上查的资料,打开文件:vi /etc/mysql/mysql.cnf,发现没有找到配置绑定ip地址的选项
进入mysql.cnf中配置的路径进入/etc/mysql/mysql.conf.d/目录,发现其实应该是在这个目录下的mysql.cnf文件,即:/etc/mysql/mysql.conf.d/mysqld.cnf (可能是版本问题,我装的mysql版本:Server version: 5.7.24-0ubuntu0.16.04.1 (Ubuntu))。
注释掉bind-address =127.0.0.1项,重启mysql:/etc/init.d/mysql restart
完成后查看3306端口监听情况:netstat -an |grep 3306
再次尝试连接,成功!