mysql学习笔记
文章目录
edx生产环境使用了mongo/mysql数据库。
edx中这两个数据库都用来干嘛呢,看这里
mysql/RDS for user-data and MongoDB for courseware content and discussion forums
既然总结了mongo,也顺便对mysql做个总结。
##mysql安装
sudo apt-get install mysql-server
一路回车,root密码为空
卸载(可能是为了重装)
sudo apt-get purge mysql-server mysql-client mysql-common mysql-client mysql-server
管理
权限管理
- CREATE USER username IDENTIFIED BY ‘password’; //之后要使用GRANT分配权限,否则登录会错误,所以一般用下边的指令
- GRANT ALL PRIVILEGES ON wordpress.* TO ‘username’@’localhost’ IDENTIFIED BY ‘password’; //创建并赋予用户在wordpress数据库中的所有权限
- GRANT ALL PRIVILEGES ON wordpress.* TO ‘username’@’%’ IDENTIFIED BY ‘password’; //任意ip,注意需要把/etc/mysql/my.cnf的bind-address 注释
- GRANT SELECT, UPDATE ON wordpress.* TO ‘username’@’localhost’ IDENTIFIED BY ‘password’; //只能执行 select 和 update 命令
- GRANT Select ON . TO reader@192.168.1.123 IDENTIFIED BY “123456” //创建用户reader,只能从192.168.1.123访问,权限为所有数据库只读
- REVOKE ALL PRIVILEGES ON . FROM ‘username’@’localhost’; //回收所有权限
- 查看所有用户:select host,user,password from mysql.user;
- 删除用户:drop user ‘jack’@’localhost’;
权限相关的细节参考MySQL 用户管理及权限管理 、Mysql初始化root密码和允许远程访问
创建数据库
|
|
删除关联表
暂时弃用检查: SET FOREIGN_KEY_CHECKS=0;
,完成之后 SET FOREIGN_KEY_CHECKS=1;
重设root 密码
以安全模式启动mysql,这样不需要密码可以直接以root身份登录,然后重设密码。
|
|
也可以直接修改/etc/mysql/debian.cnf
##数据备份 参考edx数据迁移
##gui工具 MySQLWorkbench
数据
MYSQL默认的数据文件存储目录为/var/lib/mysql,在docker中可能这个信息有用(-v)
docker
run it
docker run –name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
some-mysql
is the name you want to assign to your containermy-secret-pw
is the password to be set for the MySQLroot
usertag
is the tag specifying the MySQL version you want tags.
既有数据问题
- 采用同版本mysql
- 挂载/var/lib/mysql和/etc/mysql/conf.d,是否可能完全一样,换句话说这两个是文件,直接复制是否可用,相同的操作系统的话
- 做个试验,设立新的用户,然后migrate,或者重跑ansible playbook
##参考资料
文章作者 种瓜
上次更新 2014-07-19