最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL DBA 常用手冊(cè)小結(jié)

 更新時(shí)間:2011年11月12日 15:56:36   作者:  
MySQL DBA 常用手冊(cè)小結(jié),使用mysql的朋友可以參考下。
1.mysql的遠(yuǎn)程連接命令可以遠(yuǎn)程導(dǎo)入導(dǎo)出數(shù)據(jù)
mysqldump --default-character-set=gb2312 -h255.255.000.00 -uroot -pxxxxxx mydatabase>d:\data.sql
將指定的數(shù)據(jù)庫(kù)導(dǎo)出到一個(gè)外部SQL文件中去!
還原命令:
mysql --default-character-set=gb2312 -h255.255.000.00 -uroot -pxxxxxx mydatabase<d:\data.sql

2. MYSQL三種升級(jí)方法
安裝辦法:二進(jìn)制包編譯安裝
第一種:適用于任何一種存儲(chǔ)引擎。

1. 下載并安裝好新版本的MySQL數(shù)據(jù)庫(kù),并將其端口改為3307(避免和舊版本的3306沖突),啟動(dòng)服務(wù)。

2. 在新版本下創(chuàng)建同名數(shù)據(jù)庫(kù)。

# mysqldump -p3307 -uroot create mysqlsystems_com

3. 在舊版本下備份該數(shù)據(jù)庫(kù)。

# mysqldump -p3306 -uroot mysqlsystems_com > mysqlsystems_com.bk

Note: 你也可以加上–opt選項(xiàng),這樣可以使用優(yōu)化方式將你的數(shù)據(jù)庫(kù)導(dǎo)出,減少未知的問(wèn)題。

4. 將導(dǎo)出的數(shù)據(jù)庫(kù)備份導(dǎo)入到新版本的MySQL數(shù)據(jù)庫(kù)中。

# mysql -p3307 -uroot mysqlsystems_com < mysqlsystems_com.bk

5. 再將舊版本數(shù)據(jù)庫(kù)中的data目錄下的mysql數(shù)據(jù)庫(kù)全部覆蓋到新版本中。

# cp -R /opt/mysql-5.1/data/mysql /opt/mysql-5.4/data(權(quán)限庫(kù)保持不變)

Note: 大家也都知道這個(gè)默認(rèn)數(shù)據(jù)庫(kù)的重要性。

6. 在新版下執(zhí)行mysql_upgrade命令,其實(shí)這個(gè)命令包含一下三個(gè)命令:

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

Note: 在每一次的升級(jí)過(guò)程中,mysql_upgrade這個(gè)命令我們都應(yīng)該去執(zhí)行,它通過(guò)mysqlcheck命令幫我們?nèi)z查表是否兼容新版本的數(shù)據(jù)庫(kù)同時(shí) 作出修復(fù),還有個(gè)很重要的作用就是使用mysql_fix_privilege_tables命令去升級(jí)權(quán)限表。

7. 關(guān)閉舊版本,將新版的數(shù)據(jù)庫(kù)的使用端口改為3306,重新啟動(dòng)新版本MySQL數(shù)據(jù)庫(kù)。到此,一個(gè)簡(jiǎn)單環(huán)境下的數(shù)據(jù)庫(kù)升級(jí)就結(jié)束了。

第二種,同樣適用任何存儲(chǔ)引擎。

1. 同樣先安裝好新版本的MySQL。

2. 在舊版本中,備份數(shù)據(jù)庫(kù)。

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

Note: –tab選項(xiàng)可以在備份目錄mysqlsystems_bk下生成后綴為*.sql和*.txt的兩類(lèi)文件;其中,.sql保存了創(chuàng)建表的SQL語(yǔ)句而.txt保存著原始數(shù)據(jù)。

3. 接下來(lái)在新版本的數(shù)據(jù)庫(kù)下更新數(shù)據(jù)。

# 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存儲(chǔ)引擎,全部是文件間的拷貝。

1. 安裝。

2. 從舊版本mysqlsystems_com數(shù)據(jù)庫(kù)下將所有.frm、.MYD 和.MYI文件拷貝到新版本的相同目錄下。

3.之后的步驟依然同于第一種的后三步。

以上就是三種升級(jí)MySQL的方法,看似沒(méi)有出現(xiàn)什么問(wèn)題,其實(shí),在實(shí)際的生產(chǎn)環(huán)境中,為會(huì)有諸多問(wèn)題發(fā)生,這就需要我們?cè)谏?jí)之前充分了解新版本中增加了哪些新功能,進(jìn)一步分析升級(jí)以后這些新特性是否將會(huì)對(duì)我們?cè)瓉?lái)應(yīng)用產(chǎn)生影響。

3. MYSQL遠(yuǎn)程連接不了的解決方案

有可能是這個(gè)用戶(hù)權(quán)限不夠。查看一下權(quán)限表。

4. MYSQL忘記密碼解決辦法

在windows下:
打開(kāi)命令行窗口,停止mysql服務(wù):Net stop mysql
到mysql的安裝路徑啟動(dòng)mysql,在bin目錄下使用mysqld-nt.exe啟動(dòng),在命令行窗口執(zhí)行:mysqld-nt --skip-grant-tables
然后另外打開(kāi)一個(gè)命入令行窗口,執(zhí)行mysql,此時(shí)無(wú)需輸入密碼即可進(jìn)入。
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
>exit
使用任務(wù)管理器,找到mysqld-nt的進(jìn)程,結(jié)束進(jìn)程!
在重新啟動(dòng)mysql-nt服務(wù),就可以用新密碼登錄了。

在linux下:
如果 MySQL 正在運(yùn)行,首先殺之: killall -TERM mysqld。
啟動(dòng) MySQL :bin/safe_mysqld --skip-grant-tables &
就可以不需要密碼就進(jìn)入 MySQL 了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新殺 MySQL ,用正常方法啟動(dòng) MySQL 。

5. 更改MYSQL的默認(rèn)字符集

法1、 用 SET 語(yǔ)法來(lái)指定,不加 "GLOBAL" 的話(huà)就只對(duì)本次會(huì)話(huà)有效
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語(yǔ)法,只對(duì)本次會(huì)話(huà)有效
SET NAMES 'utf8';

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

6.MYSQL慢查詢(xún)分析工具:mysqldumpslow

mysqldumpslow命令
/path/mysqldumpslow -s c -t 10 /database/mysql/slow-log
這會(huì)輸出記錄次數(shù)最多的10條SQL語(yǔ)句,其中:

* -s, 是表示按照何種方式排序,c、t、l、r分別是按照記錄次數(shù)、時(shí)間、查詢(xún)時(shí)間、返回的記錄數(shù)來(lái)排序,ac、at、al、ar,表示相應(yīng)的倒敘;
* -t, 是top n的意思,即為返回前面多少條的數(shù)據(jù);
* -g, 后邊可以寫(xiě)一個(gè)正則匹配模式,大小寫(xiě)不敏感的;

比如
/path/mysqldumpslow -s r -t 10 /database/mysql/slow-log
得到返回記錄集最多的10個(gè)查詢(xún)。
/path/mysqldumpslow -s t -t 10 -g “l(fā)eft join” /database/mysql/slow-log
得到按照時(shí)間排序的前10條里面含有左連接的查詢(xún)語(yǔ)句。



查看mysql的某個(gè)選項(xiàng)
show variables like ‘%VAR_NAME%';
select @@VAR_NAME;


在Linux下管理MySQL數(shù)據(jù)庫(kù)的時(shí)候總有一些很緊急的情況,發(fā)現(xiàn)數(shù)據(jù)庫(kù)突然變得壓力很大了,那么作為一個(gè)DBA,也許需要一些常用的手段或者說(shuō)命令去分析問(wèn)題出現(xiàn)在哪里,然后解決:

數(shù)據(jù)庫(kù)突然產(chǎn)生壓力時(shí)查看正在查詢(xún)的SQL:(如果這里內(nèi)容太多表示并發(fā)執(zhí)行的SQL過(guò)多,或許數(shù)據(jù)庫(kù)堵塞了,會(huì)越來(lái)越慢,正常情況下這里應(yīng)該很少有東西的,也就是連接都在Sleep狀態(tài))
/usr/local/mysql/bin/mysql -uroot -ppassword databaseName -e “show full processlist” | grep -v Sleep

正在運(yùn)行的SQL太多了,看不過(guò)來(lái),那需要排序了,看持續(xù)執(zhí)行時(shí)間最長(zhǎng)的那些SQL:
/usr/local/mysql/bin/mysql -uroot -ppassword databaseName -e “show full processlist” | grep -v Sleep | sort -k6rn >sort.tmp

如果發(fā)現(xiàn)IOWait很高,請(qǐng)查看臨時(shí)表的生成情況,特別是disk tmp table:
/usr/local/mysql/bin/mysql -uroot -ppassword databaseName -e “show global status like ‘%tmp%'”

通過(guò)這樣一些辦法可以查看數(shù)據(jù)庫(kù)都在忙什么,那些忙的SQL又具體在哪一個(gè)步驟上卡住了,是在創(chuàng)建磁盤(pán)臨時(shí)文件、Sending Data、statistics?依照不同的原因來(lái)解決問(wèn)題

—————————————————————
關(guān)于Mysql Replication日常管理,重做,問(wèn)題分析時(shí)常用的辦法:

重做Slave,或者M(jìn)aster變化等等,需要將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;

導(dǎo)出數(shù)據(jù)成SQL文本,慎用,根據(jù)你的DB大小會(huì)鎖表,導(dǎo)致堵塞其他訪問(wèn):
nohup /usr/local/mysql/bin/mysqldump –database DATABASEName -uUserName -pPassWord –lock-all-tables -F >DATA20070519.sql &
-F后會(huì)刷新Master Log這樣配合上面的Change Master可以讓Slave進(jìn)行同步

只導(dǎo)出數(shù)據(jù)庫(kù)的結(jié)構(gòu)(沒(méi)有任何內(nèi)容)
/usr/local/mysql/bin/mysqldump -d DATABASEName -uUserName -pPassWord >DATA20070519.structure

只導(dǎo)出數(shù)據(jù)庫(kù)的數(shù)據(jù)(沒(méi)有創(chuàng)建表結(jié)構(gòu)的語(yǔ)句等等)
/usr/local/mysql/bin/mysqldump -t DATABASEName -uUserName -pPassWord >DATA20070519.data

同步的時(shí)候出現(xiàn)問(wèn)題(或者其他問(wèn)題)了,根據(jù)同步出現(xiàn)問(wèn)題的位置(偏移量),查看Binlog的具體內(nèi)容
/usr/local/mysql/bin/mysqlbinlog binlogFileName –start-position=偏移量
呵呵,我們碰到過(guò)Master執(zhí)行的SQL到了Slave會(huì)報(bào)語(yǔ)法錯(cuò)誤,夠詭異吧!不過(guò)就是這樣查到了原因:如果通過(guò)存儲(chǔ)過(guò)程將bit的內(nèi)容改為1就會(huì)出現(xiàn)這樣的問(wèn)題,后來(lái)將bit改為tinyint(1)就好了

授權(quán)給某一臺(tái)Slave擁有復(fù)制的權(quán)限:
grant replication slave on *.* to 用戶(hù)名@IP identified by ‘密碼';

查看Slave狀態(tài):
Show slave status \G
查看Master狀態(tài):
Show master status;
重置Slave(慎用)
reset slave;
Slave出現(xiàn)問(wèn)題了,先跳過(guò)這一條語(yǔ)句(請(qǐng)確認(rèn)所要跳過(guò)的具體內(nèi)容不會(huì)影響后面的同步,確認(rèn)方法查看Binlog文件):
set global sql_slave_skip_counter=1; (記得先暫停Slave:stop slave; 然后重啟Slave:start slave;)

———————————————–
純粹Linux相關(guān)的:
tcpdump -A “dst port 3306″ 查看3306端口的通信具體內(nèi)容

相關(guān)文章

  • IOS 數(shù)據(jù)庫(kù)升級(jí)數(shù)據(jù)遷移的實(shí)例詳解

    IOS 數(shù)據(jù)庫(kù)升級(jí)數(shù)據(jù)遷移的實(shí)例詳解

    這篇文章主要介紹了IOS 數(shù)據(jù)庫(kù)升級(jí)數(shù)據(jù)遷移的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家解決數(shù)據(jù)庫(kù)升級(jí)及數(shù)據(jù)遷移的問(wèn)題,需要的朋友可以參考下
    2017-07-07
  • 12個(gè)優(yōu)化MySQL的技巧小整理

    12個(gè)優(yōu)化MySQL的技巧小整理

    這篇文章主要介紹了12個(gè)優(yōu)化MySQL的技巧小整理,包括表連接和WHERE語(yǔ)句等基本的優(yōu)化點(diǎn)等內(nèi)容,已經(jīng)了解的也不妨加深一下印象,需要的朋友可以參考下
    2015-06-06
  • 淺析drop user與delete from mysql.user的區(qū)別

    淺析drop user與delete from mysql.user的區(qū)別

    本篇文章是對(duì)drop user與delete from mysql.user的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 你還在 Select * 嗎?

    你還在 Select * 嗎?

    這篇文章主要介紹了MySql Select ,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • MySQL數(shù)據(jù)庫(kù)中數(shù)值字段類(lèi)型長(zhǎng)度int(11)和Decimal(M,D)詳解

    MySQL數(shù)據(jù)庫(kù)中數(shù)值字段類(lèi)型長(zhǎng)度int(11)和Decimal(M,D)詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)中數(shù)值字段類(lèi)型長(zhǎng)度int(11)和Decimal(M,D)字段詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • MySQL查看與修改字符集的方法實(shí)例教程

    MySQL查看與修改字符集的方法實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于MySQL查看與修改字符集的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • DDL數(shù)據(jù)庫(kù)與表的創(chuàng)建和管理深入講解使用教程

    DDL數(shù)據(jù)庫(kù)與表的創(chuàng)建和管理深入講解使用教程

    這篇文章主要介紹了DDL數(shù)據(jù)庫(kù)與表的創(chuàng)建和管理,系統(tǒng)架構(gòu)的層面來(lái)看,數(shù)據(jù)庫(kù)從大到小依次是數(shù)據(jù)庫(kù)服務(wù)器(上面安裝了DBMS和數(shù)據(jù)庫(kù))、數(shù)據(jù)庫(kù)(也稱(chēng)database或者schema)、數(shù)據(jù)表、數(shù)據(jù)表的行與列
    2023-04-04
  • 查一次left?join沒(méi)有走索引以及原因分析

    查一次left?join沒(méi)有走索引以及原因分析

    這篇文章主要介紹了查一次left?join沒(méi)有走索引以及原因分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MySQL全局遍歷替換特征字符串的實(shí)現(xiàn)方法

    MySQL全局遍歷替換特征字符串的實(shí)現(xiàn)方法

    本文主要介紹了MySQL全局遍歷替換特征字符串的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • mysql ON DUPLICATE KEY UPDATE語(yǔ)句示例

    mysql ON DUPLICATE KEY UPDATE語(yǔ)句示例

    本文介紹一下關(guān)于mysql中INSERT INTO… ON DUPLICATE KEY UPDATE用法
    2013-11-11

最新評(píng)論

报价| 平顶山市| 永新县| 景宁| 锡林郭勒盟| 连州市| 阿坝县| 墨江| 库尔勒市| 许昌县| 正蓝旗| 昌宁县| 馆陶县| 随州市| 卓资县| 聂荣县| 刚察县| 东兴市| 巴林左旗| 资中县| 左权县| 雷波县| 翁牛特旗| 临沂市| 淮滨县| 奉节县| 台南县| 右玉县| 黄山市| 堆龙德庆县| 银川市| 佛坪县| 台中县| 渭南市| 昭平县| 邵阳市| 嫩江县| 依兰县| 鸡泽县| 仪陇县| 龙游县|