环境: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,重启服务器,大功告成。