返回顶部
首页 > 资讯 > 数据库 >MySQL DBA常用小知识有哪些
  • 534
分享到

MySQL DBA常用小知识有哪些

2024-04-02 19:04:59 534人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关Mysql DBA常用小知识有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 1.mysql的远程连接命令可以远程导入导出数据

这期内容当中小编将会给大家带来有关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: 你也可以加上&ndash;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 &ndash;check-upgrade &ndash;all-databases &ndash;auto-repair

# mysql_fix_privilege_tables

# mysqlcheck &ndash;all-databases &ndash;check-upgrade &ndash;fix-db-names &ndash;fix-table-names

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

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

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

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

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

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

Note: &ndash;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 &lsquo;%VAR_NAME%&rsquo;;

select @@VAR_NAME;

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

数据库突然产生压力时查看正在查询的SQL:(如果这里内容太多表示并发执行的SQL过多,或许数据库堵塞了,会越来越慢,正常情况下这里应该很少有东西的,也就是连接都在Sleep状态)

/usr/local//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 &lsquo;%tmp%&rsquo;”

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

&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;

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

重做Slave,或者Master变化等等,需要将Slave与新的Master同步:

change master to master_host=IP,master_user=&rsquo;replication userName&rsquo;,master

_password=&rsquo;replication Passwrod&rsquo;,master_log_file=&rsquo;log-bin.000001&prime;,master_log_pos=0;

导出数据成SQL文本,慎用,根据你的DB大小会表,导致堵塞其他访问:

nohup /usr/local/mysql/bin/mysqldump &ndash;database DATABASEName -uUserName -pPassWord &ndash;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 &ndash;start-position=偏移量

呵呵,我们碰到过Master执行的SQL到了Slave会报语法错误,够诡异吧!不过就是这样查到了原因:如果通过存储过程将bit的内容改为1就会出现这样的问题,后来将bit改为tinyint(1)就好了

授权给某一台Slave拥有复制的权限:

grant replication slave on *.* to 用户名@IP identified by &lsquo;密码&rsquo;;

查看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;)

&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash;

纯粹Linux相关的:

tcpdump -A “dst port 3306&Prime; 查看3306端口的通信具体内容  

上述就是小编为大家分享的MySQL DBA常用小知识有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL DBA常用小知识有哪些

本文链接: https://lsjlt.com/news/61801.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL DBA常用小知识有哪些
    这期内容当中小编将会给大家带来有关MySQL DBA常用小知识有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 1.mysql的远程连接命令可以远程导入导出数据 ...
    99+
    2024-04-02
  • MySQL中DBA常用命令有哪些
    小编给大家分享一下MySQL中DBA常用命令有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 1.mysql的远程连接命令可以远程导入导出数据 ...
    99+
    2024-04-02
  • CSS小知识有哪些
    本篇文章为大家展示了CSS小知识有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.CSS的color属性并非只能用于文本显示对于CSS的color属性,相信所...
    99+
    2024-04-02
  • vue常用知识点有哪些
    这篇文章主要介绍“vue常用知识点有哪些”,在日常操作中,相信很多人在vue常用知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue常用知识点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-02
  • javascript小知识点有哪些
    本篇内容主要讲解“javascript小知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript小知识点有哪些”吧!设置图片时<image scr="&qu...
    99+
    2023-06-04
  • Oracle DBA常用sql有哪些
    这篇文章主要介绍“Oracle DBA常用sql有哪些”,在日常操作中,相信很多人在Oracle DBA常用sql有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Orac...
    99+
    2024-04-02
  • Shell常见知识有哪些
    小编给大家分享一下Shell常见知识有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Shell常见知识一、用户登陆进入系统后的系统环境变量$HOME 使用者自...
    99+
    2023-06-09
  • CSS常用的知识点有哪些
    这篇文章主要讲解了“CSS常用的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS常用的知识点有哪些”吧!一、width(宽)& he...
    99+
    2024-04-02
  • 常用的JavaScript知识点有哪些
    这篇文章主要介绍“常用的JavaScript知识点有哪些”,在日常操作中,相信很多人在常用的JavaScript知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”常用的JavaScript知识点有哪些...
    99+
    2023-07-05
  • mysql知识点有哪些
    本篇内容主要讲解“mysql知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql知识点有哪些”吧! 1、同步方式 binlog和pos同步、...
    99+
    2024-04-02
  • MySQL数据库小知识具体有哪些
    今天就跟大家聊聊有关MySQL数据库小知识具体有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。无论是运维、开发、测试,还是架构师,数据库技术是一...
    99+
    2024-04-02
  • html5冷门小知识有哪些
    这篇文章将为大家详细讲解有关html5冷门小知识有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 HTML是Web同一语言,这些容纳在尖...
    99+
    2024-04-02
  • DBA常用SQL语句有哪些
    DBA常用SQL语句有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 select tablespace_...
    99+
    2024-04-02
  • CSS的必知常识有哪些
    本篇内容介绍了“CSS的必知常识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!早期的大多数网站标记几...
    99+
    2024-04-02
  • MySQL有哪些入门知识
    不知道大家之前对类似MySQL有哪些入门知识的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完MySQL有哪些入门知识你一定会有所收获的。    ...
    99+
    2024-04-02
  • MySQL索引知识有哪些
    这篇文章主要介绍“MySQL索引知识有哪些”,在日常操作中,相信很多人在MySQL索引知识有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL索引知识有哪些”的疑惑...
    99+
    2024-04-02
  • mysql基础知识有哪些
    本篇内容介绍了“mysql基础知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一章 mysql的...
    99+
    2024-04-02
  • MySQL的知识点有哪些
    本篇内容主要讲解“MySQL的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的知识点有哪些”吧! 1.在Ce...
    99+
    2024-04-02
  • mysql有哪些基础知识
    这篇文章将为大家详细讲解有关mysql有哪些基础知识,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一:连接mysql关于mysql的下载和安装我在这里就不说了,第一步我们...
    99+
    2024-04-02
  • DBA中常用Linux命令有哪些
    这篇文章主要介绍DBA中常用Linux命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 按oracleSID来查询连接数据库的客户端IPnetstat -anp...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作