在 Ubuntu 16.04 上安装使用MySQL 5.7
安装mysql 5.7
sudo apt install mysql-server
提示输入root密码,一定要记住,以后管理要用到。
数据库支持utf-8
缺省不支持 utf-8, 要修改以下两个文件:
sudo vi /etc/mysql/conf.d/mysql.cnf
增加一行:
default-character-set=utf8
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]节增加一行:
character-set-server=utf8
重新启动数据库:
sudo /etc/init.d/mysql restart
重新建立的数据库可以支持utf-8
允许使用3306端口访问:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
将 bind-address = 127.0.0.1 注释掉
重启数据库,可以通过以下命令查看3306已经打开。
netstat -ano|grep 3306
还要授权连接(*****为mysql root用户密码):
mysql -u root -p *****
grant all privileges on *.* to 'root'@'%' identified by '*****';
flush privileges;
远程连接方法:(-h IP地址或域名)
mysql -h 127.0.0.1 -u -p
安装python接口
pip install pymysql
使用python接口
# -*- coding: utf-8 -*-
# 在python3中可以用PyMySQL代替mysqldb。
# 然后在需要的项目中,把 __init__.py中添加两行:
import pymysql
pymysql.install_as_MySQLdb()
# 就可以用 import MySQLdb了。其他的方法与MySQLdb一样。
注意:在连接时加上参数charset='utf8',否则中文会出现错误:"UnicodeEncodeError: 'latin-1' codec can't encode characters in position 29-30: ordinal not in range(256)"
将:db = MySQLdb.connect("localhost","testuser","test123","testdb")
改为:
db = MySQLdb.connect("localhost","testuser","test123","testdb", charset='utf8')
强制手工重装mysql-server
sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
sudo apt autoremove mysql* --purge
sudo apt remove apparmor
sudo apt install mysql-server
人生苦短,我用Python。让我们自己动手创造美好生活吧。
徒步学天下( hhxx2014@qq.com)
2017年6月26日于中国林都