MySQL - QLGQ/learning-python GitHub Wiki

mysql安装

通过apt-get安装

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo apt-get install MySQL-server
  • sudo apt-get install mysql-client
  • sudo apt-get install libmysqlclient-dev

通过tar.gz安装

  • 在官网下载对应的安装包
  • 解压安装

此方法较复杂,有待研究!

mysqldb安装

通过apt-get安装

  • sudo apt-get install python-mysqldb

mysqldb为python的mysql数据库接口!

通过tar.gz安装

  • 在官网下载对应的安装包
  • 解压安装
  • 进入目录下
  • python setup.py build
  • python setup.py install

mysql创建远程用户并授权

创建用户

命令:CREATE USER 'username'@'host' IDENTIFIED by 'password'
说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.
例子如下:

CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY ''; 
CREATE USER 'pig'@'%';

授权

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
例子如下:

GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';

用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令: GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

取消某个用户的权限,可以使用REVOKE语句。该语句的语法格式如下:Revoke privileges (columns) on what from user ;。例如 revoke all on . from sss@localhost ; 实现了取消sss用户的所有权限的功能。

使操作生效

命令:flush privileges
说明: 把缓存flush掉.在修改用户记录后,需要FLUSH语句告诉服务器重载授权表.

如果还是access deny,则有可能是mysql配置文件出现了问题,大多数情况下问题可能是:bind-address = 127.0.0.1。也即mysql默认绑定了本地ip,不接受其他来源;注释掉,重启mysql即可解决该问题带来的影响。

其他

  • 修改指定用户密码:update mysql.user set password=password('新密码') where User="test" and Host="localhost";
  • 删除用户:delete from user where User='test' and Host='localhost';
  • 删除用户:DROP USER 'username'@'host';

Reference

MySQL创建从任意远程主机登录的用户与授权方法

⚠️ **GitHub.com Fallback** ⚠️