在本中,小編將講解如何在Ubuntu操作系統上配置MySQL服務(wù)器?它描述了如何設置root密碼、創(chuàng )建數據庫以及為數據庫添加用戶(hù)。該文章更詳細地檢查了MySQL配置,因此我們可以調整其配置并做好準備,以防出現問(wèn)題。
一、查找配置文件
默認情況下,我們可以在以下位置找到MySQL配置文件:/etc/mysql
但是,如果它們不存在,我們可以使用mysqld來(lái)查找配置。運行以下命令:$ /usr/sbin/mysqld --help --verbose
冗長(cháng)響應的第一部分描述了啟動(dòng)服務(wù)器時(shí)可以發(fā)送到服務(wù)器的選項。第二部分顯示服務(wù)器編譯期間的配置集。
在輸出的開(kāi)頭附近,找到類(lèi)似于以下示例的幾行:
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
服務(wù)器檢查該列表,直到找到配置文件。
二、my.cnf 配置文件
打開(kāi)并查看/etc/mysql/my.cnf文件。
以#開(kāi)頭的注釋行記錄了不同設置的使用。它們顯示有關(guān)日志文件、數據庫文件和其他詳細信息的位置的詳細信息。
配置組
配置文件包含方括號中帶有單個(gè)單詞的行,例如[client]或[mysqld]。這些部分是配置組。它們使重要的配置元素對讀取配置文件的程序更加可見(jiàn)。
從技術(shù)上講,服務(wù)器配置部分是一組工具。這包括服務(wù)器 ( mysqld)、客戶(hù)端 ( mysql) 和其他工具。這些程序在my.cnf中查看它們應該如何表現。
客戶(hù)端配置部分控制mysql客戶(hù)端,該mysqld部分控制服務(wù)器配置。
三、日志文件
日志文件是開(kāi)始對任何程序進(jìn)行故障排除的最佳位置。默認情況下,MySQL將其日志文件存儲在以下目錄中:/var/log/mysql
我們可能需要使用sudo來(lái)獲取該目錄中的文件列表。
如果在默認目錄中找不到MySQL日志,請檢查MySQL配置。查看my.cnf文件并查找一行log_error,如:
log_error = /var/log/mysql/error.log
如果我們沒(méi)有看到這樣的一行,請在mysqld部分創(chuàng )建一個(gè),這樣 MySQL就可以使用它自己的錯誤日志。使用示例中的位置,創(chuàng )建/var/log/mysql目錄(如果尚不存在)。然后,重新啟動(dòng)MySQL以進(jìn)行更改。
確保用戶(hù)可以通過(guò)控制mysql進(jìn)程寫(xiě)入所選的日志目錄。運行該進(jìn)程的用戶(hù)在my.cnf中mysqld的用戶(hù)配置值中定義。
四、網(wǎng)絡(luò )設置
客戶(hù)端和服務(wù)器配置部分下可能都有“端口”設置。服務(wù)器部分下的端口控制服務(wù)器監聽(tīng)的端口。默認端口是3306但是,我們可以更改它。
客戶(hù)端部分的端口告訴客戶(hù)端默認連接到哪個(gè)端口。我們通常希望兩個(gè)端口設置匹配。
如果我們使用默認設置,將不會(huì )在配置文件中看到端口條目。如果要更改端口,請在適當的類(lèi)別中添加以下行:
[client]
port = 3306
[mysqld]
port = 3306
另一個(gè)要查找的網(wǎng)絡(luò )設置是綁定地址值。這通常設置為本地主機的地址127.0.0.1。通過(guò)綁定到本地主機,服務(wù)器確保沒(méi)有人可以從本地計算機外部連接到它。
如果我們在與自己的應用程序不同的計算機上運行MySQL服務(wù)器,我們應該綁定到一個(gè)遠程可訪(fǎng)問(wèn)的地址而不是本地主機。更改綁定地址設置以匹配我們的公共IP地址。出于安全原因,我們應該使用網(wǎng)絡(luò )上的后端IP地址。
如果我們沒(méi)有看到綁定地址條目,應該將一個(gè)放入mysqld類(lèi)別以幫助控制對服務(wù)器的訪(fǎng)問(wèn):
[mysqld]
$ bind-address = 127.0.0.1
請記住在設置數據庫用戶(hù)時(shí)考慮客戶(hù)端的主機名,并在運行時(shí)提供防火墻訪(fǎng)問(wèn)權限iptables。
五、mysqld和mysqld_safe
在幕后,有兩個(gè)版本的MySQL服務(wù)器,mysqld和mysqld_safe. 兩者都讀取相同的配置部分。但是,mysqld_safe啟用更多安全功能的啟動(dòng)可以更輕松地從故障排除中恢復。
兩者mysqld都讀取mysqldmysqld_safe部分中的配置條目。如果包含mysqld_safe部分,則只有mysqld_safe使用這些值。
默認情況下,MySQL服務(wù)會(huì )啟動(dòng)mysqld_safe,這是合適的。
六、mysql管理員
該mysqladmin工具允許我們從命令行執行一些本文未涉及的管理功能。稍后我們可能會(huì )更深入地探索該工具以了解它的功能,尤其是當我們需要構建腳本來(lái)執行諸如檢查服務(wù)器狀態(tài)或創(chuàng )建和刪除數據庫等功能時(shí)。
七、備份
除了通常的備份整個(gè)計算機方法之外,我們還有以下選項來(lái)備份數據庫。主要的兩個(gè)選項是復制數據庫文件或使用mysqldump.
文件復制
默認情況下,MySQL在其數據目錄/var/lib/mysql中為每個(gè)數據庫創(chuàng )建一個(gè)目錄。
找到數據目錄后,請稍等片刻,然后再復制它。當數據庫服務(wù)器處于活動(dòng)狀態(tài)時(shí),它會(huì )將新值寫(xiě)入表。不要中斷此過(guò)程以避免可能損壞我們的備份。
為確保我們干凈地復制了數據庫文件,應該在復制之前完全關(guān)閉 MySQL服務(wù)器。
我們可以在復制期間將數據庫鎖定為只讀。完成后,釋放鎖。這樣,我們的應用程序仍然可以在您備份文件時(shí)讀取數據。
通過(guò)從命令行運行以下命令將數據庫鎖定為只讀:
$ mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;"
完成后運行以下命令解鎖數據庫:
$ mysql -u root -p -e "UNLOCK TABLES;"
MySQL客戶(hù)端選項-e告訴客戶(hù)端在引號中運行查詢(xún),就好像我們在 MySQL? shell中輸入它一樣。
如果您在腳本中編寫(xiě)這些命令,則可以將密碼放在引號中,-p兩者之間沒(méi)有空格,類(lèi)似于以下示例:
$ mysql -u root -p"password" -e "FLUSH TABLES WITH READ LOCK;"
$ mysql -u root -p"password" -e "UNLOCK TABLES;"
出于密碼安全原因,請確保對該文件設置權限以限制讀取訪(fǎng)問(wèn)。
八、mysql轉儲
備份數據庫的另一種方法是使用該mysqldump工具。不是直接復制數據庫文件,而是mysqldump生成一個(gè)代表數據庫的文本文件。默認情況下,文本文件包含用于重新創(chuàng )建數據庫的SQL語(yǔ)句列表,但我們也可以將數據庫導出為其他格式,如.CSV或.XML。
生成的語(yǔ)句mysqldump直接進(jìn)入標準輸出。我們可以通過(guò)在命令行中運行以下命令來(lái)指定a以重定向輸出:
$ mysqldump -u root -p demodb > dbbackup.sql
此命令指示在SQL語(yǔ)句中mysqldump重新創(chuàng )建demodb數據庫并將它們寫(xiě)入文件dbbackup.sql。請注意,用戶(hù)名和密碼選項的功能與 MySQL客戶(hù)端相同,因此我們可以-p在腳本后直接包含密碼。
從mysqldump恢復
恢復mysqldump數據庫類(lèi)似于創(chuàng )建轉儲的方式,但我們使用的是,mysql而不是mysqldump,如以下恢復命令所示:
$ mysql -u root -p demodb < dbbackup.sql
另請注意,<尖括號會(huì )改變方向。這會(huì )將命令從重定向其輸出切換為從現有文件中提取輸入。該輸入被發(fā)送到mysql命令,導致指令重新創(chuàng )建數據庫。
默認情況下,生成的SQL語(yǔ)句會(huì )添加到現有數據庫表中,而不是覆蓋它們。如果要在現有數據庫上恢復備份,則應先刪除數據庫表,或者刪除并重新創(chuàng )建數據庫本身。我們可以通過(guò)將選項$ --add-drop-table與創(chuàng )建mysqldump. 這導致mysqldump向它寫(xiě)入的備份文件添加一個(gè)命令,該命令在重新創(chuàng )建表之前刪除表。
九、數據庫引擎
數據庫引擎是在幕后工作的進(jìn)程,從文件寫(xiě)入和讀取數據。如果我們想運行針對特定數據庫引擎優(yōu)化的應用程序,只需要了解這一點(diǎn)。
需要表的應用程序按需創(chuàng )建它們并自動(dòng)創(chuàng )建引擎類(lèi)型。要查看數據庫表使用的引擎,可以在MySQL shell中運行以下命令,將demodb更改為數據庫的名稱(chēng):
$ SHOW TABLE STATUS FROM demodb;
選擇引擎
理想情況下,我們不需要選擇引擎。如果對MySQL不是很熟悉,請允許應用程序默認選擇一個(gè)。如果我們正在編寫(xiě)應用程序,請使用默認引擎,直到對自己的選擇感到滿(mǎn)意為止。
MySQL最常用的兩個(gè)數據庫引擎是MyISAM和InnoDB. MySQL 5.1 版及更早版本的默認數據庫引擎是MyISAM,而InnoDB是從 MySQL 5.5 版開(kāi)始的默認數據庫引擎。
MyISAM
因為MyISAM在 MySQL中已經(jīng)默認了一段時(shí)間,所以它是兩個(gè)主要引擎中最兼容的選擇。某些類(lèi)型的搜索MyISAM比InnoDB. 盡管它是兩者中較舊的一個(gè),但它可能是給定應用程序類(lèi)型的最佳選擇。
InnoDB
InnoDB比數據庫更容錯,MyISAM并以更小的數據庫損壞風(fēng)險處理崩潰和恢復。
如果我們的應用程序需要InnoDB并且使用的是MySQL 5.1或更早版本,則my.cnf配置文件中可能沒(méi)有任何設置。如果我們在沒(méi)有太多內存的服務(wù)器上運行,這可能是個(gè)問(wèn)題。
以下設置可以讓我們在具有256兆RAM的共享服務(wù)器上開(kāi)始使用 InnoDB:
innodb_buffer_pool_size = 32M
innodb_log_file_size = 8M
innodb_thread_concurrency = 8
innodb_file_per_table
將它們添加到配置文件的[mysqld]部分。同樣,這些只是粗略的指南。
以上是“在Ubuntu操作系統上配置MySQL服務(wù)器”相關(guān)教程,希望能幫助到大家!
Copyright ? 2013-2020. All Rights Reserved. 恒訊科技 深圳市恒訊科技有限公司 粵ICP備20052954號 IDC證:B1-20230800.移動(dòng)站