Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作:
《一》Mysql允许用户远程连接
在本机先使用root用户登录mysql: mysql -u root -p”youpassword” 进行授权操作:
1 | mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION; |
此时如果还是连不上请往下看:
(一)查看mysql数据库的端口是否正确:
1 | mysql> show global variables like 'port'; |
(二)查看防火墙是否打开3306端口:
1 | #/etc/init.d/iptables status | grep 3306 |
如果还没有配置则按下面的增加配置端口:
Centos6.5:
1 | #/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT |
然后保存:
1 | #/etc/rc.d/init.d/iptables save |
还没好的话,看看mysql配置文件里:bind-address的配置,如果有就注掉。
再试试看吧。
《二》Mysql导入文件最大连接
1.临时修改:
1 | mysql>set global max_allowed_packet=524288000; #修改 512M |
2.修改my.cnf(windows下my.ini),需重启mysql。
在 [MySQLd] 部分添加一句(如果存在,调整其值就可以):
max_allowed_packet=256M (根据实际情况调整数值)
可通过命令:
1 | show VARIABLES like '%max_allowed_packet%’; |
查看是否修改成功!
《三》设置数据全局范围编码,解决乱码问题
1 | mysql> show variables like '%char%'; |
查看当前的数据库是不是utf8的,如果不是,且数据不是不可恢复的,就把目前乱码的库先删了把,改好后下面的设置后重新导入数据。
ubuntu 修改mysql配置,其它版本请对号入座:
1.修改配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf
1 | [mysqld] |
2.修改配置文件 /etc/mysql/conf.d/mysql.cnf
1 | [mysql] |
3.修改配置文件 /etc/mysql/debian.cnf
1 | [client] |
4.重启mysql服务
5.重新导入数据
《四》pymysql存储emojy表情
1.配置pymysql连接方式
1 | mysql+pymysql://xx:xx@xxxx:3306/xxx?charset=utf8mb4 |
2.修改mysql配置
/etc/mysql/mysql.conf.d/mysqld.cnf
1 | [mysqld] |