Mysql问题随记

【用户创建并授权远程访问】
CREATE USER 'username'@'host' IDENTIFIED BY 'password’;
 
@后面跟主机地址,即这个用户可以从哪些地址访问数据库,localhost表示只允许本地访问,也可以是一个具体的IP,表示允许从这个地址发起访问,如果希望从任何地址登录,则不跟host或者使用“%”
 
举例:
mysql> create user ‘user_local’@‘localhost’ identified by ‘1234’
 
这个时候在本地使用mysql -u user_local -p 以及 mysql -h localhost -u user_local -p都可以登入
但是如果在其他终端通过制定本机的IP来登录则会被拒绝:
    NickPro:~ mysql -h 192.168.1.5 -u user_local -p
    Enter password:
    ERROR 1045 (28000): Access denied for user 'user_local'@'192.168.1.5' (using password: YES)
 
使用下面的语句创建,即可实现远程访问:
mysql> create user ‘user_local’@‘%’ identified by ‘1234’
 
 
【字符编码配置】
如果遇到中文显示为问号的问题,那么通常是字符集设置的问题,解决办法:
1)mysql配置修改:
vim /etc/mysql/my.cnf
在[client]/[mysqld_safe]/下面添加:default_character_set=utf8
在[mysqld]下面添加:default_set_server=utf8
 
2)创建数据库指定字符编码:
create database mydb default character set utf8 collate utf8_general_ci;
 
3)最后在client进行连接的时候也要使用utf8,具体格式不同的database驱动不一样,例如python的pymysql中,使用:
pymysql.connect(host, user,passwd,database,charset=‘utf-8')
 
【授权数据库给某个用户】
mysql>grant all privileges on testDB.* to test@localhost identified by '1234';
mysql>flush privileges;//刷新系统权限表
原文地址:https://www.cnblogs.com/yanghaizhou/p/7327626.html