我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中DBA常用命令有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL中DBA常用命令有哪些

小编给大家分享一下MySQL中DBA常用命令有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1.mysql的远程连接命令可以远程导入导出数据 
mysqldump --default-character-set=gb2312 -h355.255.000.00 -uroot -pxxxxxx mydatabase>d:\data.sql 
将指定的数据库导出到一个外部SQL文件中去! 
还原命令: 
mysql --default-character-set=gb2312 -h355.255.000.00 -uroot -pxxxxxx mydatabase<d:\data.sql 


2. MYSQL三种升级方法 
安装办法:二进制包编译安装 
第一种:适用于任何一种存储引擎。 


1. 下载并安装好新版本的MySQL数据库,并将其端口改为3307(避免和旧版本的3306冲突),启动服务。 


2. 在新版本下创建同名数据库。 


# mysqldump -p3307 -uroot create mysqlsystems_com 


3. 在旧版本下备份该数据库。 


# mysqldump -p3306 -uroot mysqlsystems_com > mysqlsystems_com.bk 


Note: 你也可以加上–opt选项,这样可以使用优化方式将你的数据库导出,减少未知的问题。 


4. 将导出的数据库备份导入到新版本的MySQL数据库中。 


# mysql -p3307 -uroot mysqlsystems_com < mysqlsystems_com.bk 


5. 再将旧版本数据库中的data目录下的mysql数据库全部覆盖到新版本中。 


# cp -R /opt/mysql-5.1/data/mysql /opt/mysql-5.4/data(权限库保持不变) 


Note: 大家也都知道这个默认数据库的重要性。 


6. 在新版下执行mysql_upgrade命令,其实这个命令包含一下三个命令: 


# mysqlcheck –check-upgrade –all-databases –auto-repair 
# mysql_fix_privilege_tables 
# mysqlcheck –all-databases –check-upgrade –fix-db-names –fix-table-names 


Note: 在每一次的升级过程中,mysql_upgrade这个命令我们都应该去执行,它通过mysqlcheck命令帮我们去检查表是否兼容新版本的数据库同时 作出修复,还有个很重要的作用就是使用mysql_fix_privilege_tables命令去升级权限表。 


7. 关闭旧版本,将新版的数据库的使用端口改为3306,重新启动新版本MySQL数据库。到此,一个简单环境下的数据库升级就结束了。 


第二种,同样适用任何存储引擎。 


1. 同样先安装好新版本的MySQL。 


2. 在旧版本中,备份数据库。 


# mkdir /opt/mysqlsystems_bk ; mysqldump -p3306 -uroot –tab=/opt/mysqlsystems_bk mysqlsystems_com 


Note: –tab选项可以在备份目录mysqlsystems_bk下生成后缀为*.sql和*.txt的两类文件;其中,.sql保存了创建表的SQL语句而.txt保存着原始数据。 


3. 接下来在新版本的数据库下更新数据。 


# mysqladmin -p3307 -uroot create mysqlsystems_com 


# cat /opt/mysqlsystems_bk/*.sql | mysql -p3307 -uroot mysqlsystems_com ( Create Tables ) 


# mysqlimport mysqlsystems_com /opt/mysqlsystems_bk/*.txt ( Load Data ) 


4. 之后的所有步骤与第一种方法的后三步5、6、7相同。 


第三种,适用于MyISAM存储引擎,全部是文件间的拷贝。 


1. 安装。 


2. 从旧版本mysqlsystems_com数据库下将所有.frm、.MYD 和.MYI文件拷贝到新版本的相同目录下。 


3.之后的步骤依然同于第一种的后三步。 


以上就是三种升级MySQL的方法,看似没有出现什么问题,其实,在实际的生产环境中,为会有诸多问题发生,这就需要我们在升级之前充分了解新版本中增加了哪些新功能,进一步分析升级以后这些新特性是否将会对我们原来应用产生影响。 


3. MYSQL远程连接不了的解决方案 


有可能是这个用户权限不够。查看一下权限表。 


4. MYSQL忘记密码解决办法 


在windows下: 
打开命令行窗口,停止mysql服务:Net stop mysql 
到mysql的安装路径启动mysql,在bin目录下使用mysqld-nt.exe启动,在命令行窗口执行:mysqld-nt --skip-grant-tables 
然后另外打开一个命入令行窗口,执行mysql,此时无需输入密码即可进入。 
>use mysql 
>update user set password=password("new_pass") where user="root"; 
>flush privileges; 
>exit 
使用任务管理器,找到mysqld-nt的进程,结束进程! 
在重新启动mysql-nt服务,就可以用新密码登录了。 


在linux下: 
如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。 
启动 MySQL :bin/safe_mysqld --skip-grant-tables & 
就可以不需要密码就进入 MySQL 了。 
然后就是 
>use mysql 
>update user set password=password("new_pass") where user="root"; 
>flush privileges; 
重新杀 MySQL ,用正常方法启动 MySQL 。 


5. 更改MYSQL的默认字符集 


法1、 用 SET 语法来指定,不加 "GLOBAL" 的话就只对本次会话有效 
SET [GLOBAL] character_set_client = utf8; 
SET [GLOBAL] character_set_connection = utf8; 
SET [GLOBAL] character_set_database = utf8; 
SET [GLOBAL] character_set_results = utf8; 
SET [GLOBAL] character_set_server = utf8; 


方法2、 也用SET语法,只对本次会话有效 
SET NAMES 'utf8'; 


方法3、) 直接修改 my.cnf,增加一行内容,然后重启 MySQL,使之全局生效 
default-character-set = utf8 


6.MYSQL慢查询分析工具:mysqldumpslow 


mysqldumpslow命令 
/path/mysqldumpslow -s c -t 10 /database/mysql/slow-log 
这会输出记录次数最多的10条SQL语句,其中: 


* -s, 是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙; 
* -t, 是top n的意思,即为返回前面多少条的数据; 
* -g, 后边可以写一个正则匹配模式,大小写不敏感的; 


比如 
/path/mysqldumpslow -s r -t 10 /database/mysql/slow-log 
得到返回记录集最多的10个查询。 
/path/mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log 
得到按照时间排序的前10条里面含有左连接的查询语句。 






查看mysql的某个选项 
show variables like ‘%VAR_NAME%'; 
select @@VAR_NAME; 




在Linux下管理MySQL数据库的时候总有一些很紧急的情况,发现数据库突然变得压力很大了,那么作为一个DBA,也许需要一些常用的手段或者说命令去分析问题出现在哪里,然后解决: 


数据库突然产生压力时查看正在查询的SQL:(如果这里内容太多表示并发执行的SQL过多,或许数据库堵塞了,会越来越慢,正常情况下这里应该很少有东西的,也就是连接都在Sleep状态) 
/usr/local/mysql/bin/mysql -uroot -ppassword databaseName -e “show full processlist” | grep -v Sleep 


正在运行的SQL太多了,看不过来,那需要排序了,看持续执行时间最长的那些SQL: 
/usr/local/mysql/bin/mysql -uroot -ppassword databaseName -e “show full processlist” | grep -v Sleep | sort -k6rn >sort.tmp 


如果发现IOWait很高,请查看临时表的生成情况,特别是disk tmp table: 
/usr/local/mysql/bin/mysql -uroot -ppassword databaseName -e “show global status like ‘%tmp%'” 


通过这样一些办法可以查看数据库都在忙什么,那些忙的SQL又具体在哪一个步骤上卡住了,是在创建磁盘临时文件、Sending Data、statistics?依照不同的原因来解决问题 


————————————————————— 
关于Mysql Replication日常管理,重做,问题分析时常用的办法: 


重做Slave,或者Master变化等等,需要将Slave与新的Master同步: 
change master to master_host=IP,master_user='replication userName',master 
_password='replication Passwrod',master_log_file='log-bin.000001′,master_log_pos=0; 


导出数据成SQL文本,慎用,根据你的DB大小会锁表,导致堵塞其他访问: 
nohup /usr/local/mysql/bin/mysqldump –database DATABASEName -uUserName -pPassWord –lock-all-tables -F >DATA20070519.sql & 
-F后会刷新Master Log这样配合上面的Change Master可以让Slave进行同步 


只导出数据库的结构(没有任何内容) 
/usr/local/mysql/bin/mysqldump -d DATABASEName -uUserName -pPassWord >DATA20070519.structure 


只导出数据库的数据(没有创建表结构的语句等等) 
/usr/local/mysql/bin/mysqldump -t DATABASEName -uUserName -pPassWord >DATA20070519.data 


同步的时候出现问题(或者其他问题)了,根据同步出现问题的位置(偏移量),查看Binlog的具体内容 
/usr/local/mysql/bin/mysqlbinlog binlogFileName –start-position=偏移量 
呵呵,我们碰到过Master执行的SQL到了Slave会报语法错误,够诡异吧!不过就是这样查到了原因:如果通过存储过程将bit的内容改为1就会出现这样的问题,后来将bit改为tinyint(1)就好了 


授权给某一台Slave拥有复制的权限: 
grant replication slave on *.* to 用户名@IP identified by ‘密码'; 


查看Slave状态: 
Show slave status \G 
查看Master状态: 
Show master status; 
重置Slave(慎用) 
reset slave; 
Slave出现问题了,先跳过这一条语句(请确认所要跳过的具体内容不会影响后面的同步,确认方法查看Binlog文件): 
set global sql_slave_skip_counter=1; (记得先暂停Slave:stop slave; 然后重启Slave:start slave;) 

看完了这篇文章,相信你对“MySQL中DBA常用命令有哪些”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL中DBA常用命令有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql常用命令有哪些

mysql提供了多种常用命令,包括:创建和删除数据库(create database、drop database),管理表(create table、alter table、drop table),操作数据(insert、update、de
mysql常用命令有哪些
2024-04-14

mysql常用命令都有哪些

mysql 中最常用的命令包括:数据库管理:create database 创建数据库,use 切换数据库,show databases 显示所有数据库。表管理:create table 创建表,drop table 删除表,show ta
mysql常用命令都有哪些
2024-04-14

有哪些MySQL常见命令

本篇文章为大家展示了有哪些MySQL常见命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、查看当前所有的数据库show databases;2、打开指定的库use 库名3、查看当前库的所有表sh
2023-06-15

MySQL常用必备命令有哪些

这篇文章主要介绍了MySQL常用必备命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.导出test_db数据库命令:mysqldump -u 用户名 -p 数据库名
2023-06-16

HDFS中有哪些常用命令

这篇文章主要介绍了HDFS中有哪些常用命令,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。HDFS是什么:HDFS即Hadoop分布式文件系统(Hadoop Distribut
2023-06-27

Git中有哪些常用命令

小编给大家分享一下Git中有哪些常用命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的
2023-06-27

Django中有哪些常用命令

这篇文章将为大家详细讲解有关Django中有哪些常用命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、django-admin存放在Python的site-packages\django
2023-06-14

编程热搜

目录