设为首页 收藏本站
查看: 1093|回复: 0

[经验分享] Mysql操作语句(不定期更新)

[复制链接]

尚未签到

发表于 2018-10-10 13:38:43 | 显示全部楼层 |阅读模式
  数据库是每一个运维人员的基本功之一,这里就是对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:
DSC0000.png

  5)查询库里的表语句
DSC0001.png

  6)修改帐号的密码
  mysql -u root  
  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
  7)mysql语句仅限于单个数据库的方法
  场景,mysql里的某一个数据库发生了损坏,但是手头有一个整个mysql的备份表,现在只需要那个有故障的数据库抢救成备份表里的数据,而其他数据库依旧是最新的数据,如果用2)里的例子,很不幸,那将会“污染”了其他正在运行的数据库。
  怎么办?遇到这样的情况的恢复语句是
mysql -u用户名 -p --one-database 指定数据库名 < 备份数据文件.sql  8)mysql优化软件:推荐美团的SQLAdvisor,地址是:https://github.com/Meituan-Dianping/SQLAdvisor
  使用手册是:http://tech.meituan.com/sqladvisor_pr.html
  9)centos 7安装 mariadb过程:
yum install mariadb mariadb-server  
systemctl start mariadb ==> 启动mariadb
  
systemctl enable mariadb ==> 开机自启动
  
mysql_secure_installation ==> 设置 root密码等相关
  
mysql -uroot -p123456 ==> 测试登录!
  10)mysql查看databases容量大小的语句:
SELECT CONCAT(ROUND(SUM(data_length)/(1024*1024*1024), 6), ' GB') AS 'Total Data Size' FROM information_schema.TABLES WHERE table_schema LIKE '这里填写需要查询的数据库名字';  比如:
DSC0002.png

  11)初始化root密码的方法
  默认情况下mariadb的密码是空,当需要重新设定新密码的话,那么需要的语句就是#mysqladmin -u root -p password,然后先输入当前的密码,然后再输入两次新的密码就可以了。
DSC0003.png

  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='数据库名';”,如图:
DSC0004.jpg

  拷贝出来之后,复制一下就批量删除了。
  14)把命令行执行语句保存成xls。
  mysql -h数据库地址 -u用户名 -p密码 -e &quot;具体语句&quot; db名 > /tmp/XXX.xls



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-620020-1-1.html 上篇帖子: 阿里云服务器安装mysql失败 下篇帖子: MYSQL5.5源码安装 linux下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表