mysql遇到的坑

来源:互联网 发布:visio画数据库关系图 编辑:程序博客网 时间:2024/05/18 02:42
环境:ubuntu16.4
mysql版本5.7.19

2.用户无法通过SSH远程访问
先用root运行mysql -uroot -p,启动mysql
然后再mysql界面下运行grant all privileges on *.* to yszhu@"%" identified by "12345678" with grant option
设置yszhu用户远程访问mysql的权限,密码为12345678

3.mysql.sock找不到
查找.sock文件。通过/etc/mysql/mysql.conf.d/mysqld.cnf,找到mysqld.sock文件所在/var/run/mysqld/mysqld.sock
,实现用pymysql连接。书上写的是mysql.sock,但是服务器上的名字是mysqld.sock,可能版本不一样。

4.设置mysql字符集
mysql> show variables like '%char%';查看默认的各种字符集然后用/etc/mysql目录下看到my.cnf,网络上很多说是在这个文件里添加内容,但是我在winscp上看到这个文件感觉是快捷方式。打开看一下文件,显示:!includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/
估计是先读取第一行的文件,然后读取第二行文件的意思,所以找到第一行的codf.d文件夹,找到mysql.cnf文件,打开一看,里面只有
[mysql]一行,没有其他内容,于是按照网络上找到的资料将整个文件修改为:
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
保存文件,重启mysql,然后mysql> show variables like '%char%',发现字符集改变了。成功。

5.数据写入报错
创建table,插入汉字,报错Incorrect string value,大概是编码问题。
mysql> alter table onlinetest convert to character set utf8;将table编码噶为utf8就可以了
6.pymysql写入mysql的数据都带有引号,在数据库操作中很不方便。
UPDATE [table] SET title=REPLACE(title,'\'',''); title表示要操作的字段

7.telnet连不上3306端口,pymysql连不上服务器
百度各种方法不试过了,改权限,改mysql配置不行,最后发现是阿里云安全组设置里面端口开放的限制。
只开了 3389和22端口。于是将mysql的端口修改为3389,重启服务器,大功告成。