Mysql操作语句(不定期更新)
数据库是每一个运维人员的基本功之一,这里就是对mysql操作语句做一番整理,不定期更新。
1)数据库备份语句
mysqldump -h数据库ip地址 -u用户名 -p密码 ABC XYZ > JQK.sql
把ABC库里的XYZ这个表备份到当前目录下JQK.sql里。
mysqldump -h数据库ip地址 -u用户名 -p密码 -d ABC > JQK.sql
把整个ABC的库结构导出到JQK.sql里。如果有提示“Got errno 28 on write” 这个错误,检查磁盘容量,很有可能是磁盘容量不足。
如果非要动一个正在运行的数据库,那么就
mysqldump --skip-opt -u root --password=123456 dbname >mySQL.SQL
2)数据库导入数据库文件
mysql -h数据库ip地址 -u用户名 -p密码 ABC < JQK.sql
把JQK.sql这个数据库文件导入到ABC这个库里,注意!如果没有特殊注明ABC这个库的话,需要在JQK.sql里面第一句话说明“USE ABC;”。
3)数据库直接备份到压缩文件和从压缩文件里导入到数据库
#备份到压缩文件 mysqldump -h数据库ip地址 -u用户名 -p密码 ABC XYZ | gzip > JQK.sql.gz #从压缩文件导入 gzip < JQK.sql.gz | mysql -h数据库ip地址 -u用户名 -p密码
4)不进入mysql直接显示数据库查询结果
mysql -h数据库ip地址 -u用户名 -p密码 -D ABC -e '具体的sql语句';
如图,效果就是在对应的数据库里直接查询select count(1) from lg_openapi_dtl_20170207:
5)查询库里的表语句
6)修改帐号的密码
mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
7)mysql语句仅限于单个数据库的方法
场景,mysql里的某一个数据库发生了损坏,但是手头有一个整个mysql的备份表,现在只需要那个有故障的数据库抢救成备份表里的数据,而其他数据库依旧是最新的数据,如果用2)里的例子,很不幸,那将会“污染”了其他正在运行的数据库。
怎么办?遇到这样的情况的恢复语句是
|
8)mysql优化软件:推荐美团的SQLAdvisor,地址是:https://github.com/Meituan-Dianping/SQLAdvisor
使用手册是:http://tech.meituan.com/sqladvisor_pr.html
9)centos 7安装 mariadb过程:
1
2
3
4
5
|
yum install mariadb mariadb-server
systemctl start mariadb ==> 启动mariadb systemctl enable mariadb ==> 开机自启动
mysql_secure_installation ==> 设置 root密码等相关 mysql -uroot -p123456 ==> 测试登录! |
10)mysql查看databases容量大小的语句:
1
|
SELECT CONCAT(ROUND(SUM(data_length)/(1024*1024*1024), 6), ' GB' ) AS 'Total Data Size' FROM information_schema.TABLES WHERE table_schema LIKE '这里填写需要查询的数据库名字' ;
|
比如:
11)初始化root密码的方法
默认情况下mariadb的密码是空,当需要重新设定新密码的话,那么需要的语句就是#mysqladmin -u root -p password,然后先输入当前的密码,然后再输入两次新的密码就可以了。
12)查看MYSQL的历史命令的方法
#cat ~/.mysql_history
13)快速获取一个databases里要删除掉所有tables的方法
研发要删除阿里云RDS里的一个databases,但是执行#drop database 数据库名的时候,会爆错“OPERATION need to be executed set by ADMIN.”这样就改成删除下面所有的表,但是如何能一口气得到所有表的删除语句呢?
在mysql里使用“SELECT CONCAT('drop table ',table_name,';') FROM information_schema.`TABLES` WHERE table_schema='数据库名';”,如图:
拷贝出来之后,复制一下就批量删除了。