0%

Mysql常见问题

Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作:

《一》Mysql允许用户远程连接

在本机先使用root用户登录mysql: mysql -u root -p”youpassword” 进行授权操作:

1
2
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

此时如果还是连不上请往下看:

(一)查看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
2
[mysqld]
character-set-server=utf8

2.修改配置文件 /etc/mysql/conf.d/mysql.cnf

1
2
[mysql]
default-character-set=utf8

3.修改配置文件 /etc/mysql/debian.cnf

1
2
[client]
default-character-set=utf8

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
2
3
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci