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

[经验分享] mysql常用经典操作

[复制链接]

尚未签到

发表于 2016-9-16 10:02:42 | 显示全部楼层 |阅读模式
  .连接服务器

  mysql -u   cnscn

  -h   192.168.0.1

  [-D  dbname]

  [-P  3306]

  [--protocol=name]    The protocol of connection (tcp,socket,pipe,memory)

  [-S, --socket=name]  连接所用的套接字文件

  [--character-sets-dir=name]  字符集所位于的目录

  [--default-character-set=name]   默认的字符集

  [-E, --vertical]  垂直地打列出查询输出

  .创建数据库

  Mysql>create database dbname;

  .显示数据库列表

  mysql>show databases;

  .显示数据表列表

  mysql>show tables;

  .查看mysql设置参数

  $mysqladmin  -u root -p variables;

  .开启服务器

  $/etc/rc.d/init.d/mysqld start

  或

  $mysqld_safe  --user=mysql &

  $/etc/rc.d/init.d/mysqld stop

  或

  $mysqladmin  shutdown  -u root -p

  .优化表

  mysql>optimize  table  tblA,tblB;

  或 [进行优化并检查修复任务]

  $mysqlcheck  -o  dbname  tblA tblB  tblC   -u root  -p

  .对表进行分析

  mysql>analyze  table  tblA;

  或

  $mysqlcheck  -a dbname [tblA  tblB tblC ] -u root -p

  .对表进行检查

  mysql>check table tblA,tblB,tblC;

  .

  .赋权

  mysql>grant all on dbname.* to username@ identified by 'localhostpassword'

  刷新权限表

  mysql>flush privileges;

  .从txt文本文件向数据库导入文件

  1)用select into做备份

  select * from table where ... order... group by ...

  into outfile '/tmp/data.dat'

  [fields

  [terminated  by '\t']

  [[optionally] enclosed by '']

  [escaped  by '\']

  ]

  [lines  terminated by '\n']

  [ignore  number  lines]

  [(col_name,...)]

  mysql>select * from tblName where id<10 int outfile 'a.dat'  fields terminated by '|' lines terminated by '\n';

  2)用load data恢复

  load  data  [low_priority | concurrent]

  [local]

  infile  'a.dat'

  [fields

  [terminated  by '\t']

  [[optionally] enclosed by '']

  [escaped  by '\']

  ]

  [lines  terminated by '\n']

  [ignore  number  lines]

  [(col_name,...)]

  mysql>load data

  infile 'a.dat'

  into table tblName

  fields terminated by '|'

  lines terminated by '\n';

  3)mysqlimport---load data的等价命令

  mysqlimport

  dbname

  -u root

  -h localhost

  -password

  [--fields-terminated-by=...]

  [--fields-enclosed-by=...]

  [--fields-optionally-enclosed-by=...]

  [--fields-escaped-by=...]

  [--lines-terminated-by=...]

  [--port=3306]

  [--socket=/path/to/socket]

  [--character-sets-dir=name]

  [-d,--delete]       输入文件前,清空表

  ]-l,--lock-tables]  锁定准备写入的表

  %mysqlimport  dbname  -u root -password  a.dat

  .导出成.sql语句

  1)用mysqldump备份

  --add-locks         加上锁表语句,建议使用,将加快速度,以加快insert时的速度

  --add-drop-table    添加drop table

  -A, --all-databases 导出所有的数据库

  --allow-keywords    为避免不允许列名与关键字名不同,而在列名前加表名

  -c,--complete-insert 使用完整的插入语句

  -C,--compress        压缩数据

  -B,--databases       存储指定的几个库

  -e,--extended-insert 利用多行insert方式使结果更紧凑,速度更快,因为索引缓存器只在每个insert命令后刷新

  --fields-terminated-by=...

  --fields-enclosed-by=...

  --fields-optionally-enclosed-by=...

  --fields-escaped-by=...

  --lines-terminated-by=...

  -h, --host=...        主机

  -l,--lock-tables      锁表

  -K,--disable-keys     在insert前使索引无效,之后有效,使插入有效

  --opt等效于--quick  --add-drop-table  --add-locks  --extened-insert  --lock-tables的组合    这是最快的恢复

  --password            提示输入密码

  -P portnumber,--port=portnumber   指明TCP/IP端口号

  -q,--quick            不对表进行暂存,但直接存储在stdout.用mysql_use_result()去做,对于大的表,必须这样做

  -Q,--quote-names      把表和列的名放入单引号里

  -r,--result-file=...  输出到指定文件.这在DOS中有用,因为它可以阻止UNIX的新行\n符被转换成\n\r

  -S /tmp/socket,       指定socket文件

  --socket=/tmp/socket

  -T,--tab=path-to-some-directory    为每一个表创建两个文件tblname.sql, tblname.txt

  -u username,          连接的用户名

  --user=username

  -w,--where='where-condition'   导出的条件

  -X,--xml              以符合方法的XML形式存储数据库

  -O net_buffer_length=n    当创建多行插入语句时,该数创建行数的大小最多为n(-e或-opt参数,n必须小于16MB)

  %mysqldump

  --where='id>5'      #只备份id大于5的记录

  dbname

  [tblname]

  >/tmp/a.sql

  2)导出到mysql_db.xml

  %mysqldump  mysql -X > mysql_db.xml

  3)最快导出方式

  %mysqldump mysql --opt >msyql.sql

  4)恢复用mysqldump备份的数据库

  %mysql dbname < /tmp/a.sql

  或

  mysql>source /tmp/a.sql

  .查询参数

  1) \g  在语句尾,同;

  2) \G  在语句尾,使查询结果以竖形输出

  3) \c  在语句尾,使当前语句不执行

运维网声明 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-272938-1-1.html 上篇帖子: 导入导出mysql数据 下篇帖子: 使用INNOTOP监控MySQL性能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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