新聞中心
MySQL是現(xiàn)代web應(yīng)用程序的核心組件之一。由于其開放源代碼和可靠性,MySQL是許多開發(fā)人員和企業(yè)用戶的首選。MySQL的優(yōu)點之一是其高度自定義性,各種配置選項可以滿足不同應(yīng)用程序的需求。在本指南中,您將學(xué)習(xí)如何使用Linux修改MySQL以滿足您的個人或業(yè)務(wù)需求。

創(chuàng)新互聯(lián)公司致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營銷,提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、小程序設(shè)計、公眾號商城、等建站開發(fā),創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。
1.安裝MySQL
在啟動MySQL之前,需要先按照下面的步驟在Linux上安裝MySQL。
步驟1:更新系統(tǒng)
$ sudo apt-get update
步驟2:安裝MySQL服務(wù)
$ sudo apt-get install mysql-server
2.打開MySQL配置文件
MySQL配置文件的位置取決于操作系統(tǒng),但通常在/etc/mysql/目錄下。要編輯此文件,您需要超級用戶特權(quán)。使用以下命令打開配置文件:
$ sudo vi /etc/mysql/mysql.cnf
配置文件是一個非常大的文本文件,包含MySQL的所有配置選項。因此,我們需要找到要修改的內(nèi)容。您可以使用“/”來查找文本,例如,“/cache”。我們將演示如何改變兩個常用的MySQL選項:緩存大小和更大連接數(shù)。
3.修改緩存大小
MySQL的默認(rèn)命令和查詢緩存大小是16MB。但是,對于高流量應(yīng)用程序,此緩存大小可能會過小。假設(shè)我們想將緩存大小增加到256MB。在MySQL配置文件中搜索以下字符串:
query_cache_size=16M
使用vim編輯器,將查詢緩存大小設(shè)置為256MB:
query_cache_size=256M
請注意,您可以采用不同的緩存大小,但建議不要超過可用RAM大小的25%。
4.修改更大連接數(shù)
在默認(rèn)情況下,MySQL將更大連接數(shù)設(shè)置為100。這意味著如果同時有超過100個連接請求,則MySQL將開始拒絕新的連接請求。許多企業(yè)應(yīng)用程序需要更高的更大連接數(shù)。假設(shè)我們想要將其增加到1000。在MySQL配置文件的頂部或底部搜索以下字符串:
max_connections=100
使用vim編輯器,將更大連接數(shù)設(shè)置為1000:
max_connections=1000
5.重載MySQL配置
對于改動MySQL配置文件后的重要一步是重載MYSQL配置。您需要使用以下命令:
$ sudo systemctl restart mysql.service
終端輸出顯示服務(wù)正在重新啟動:
Job for mysql.service fled because the control process exited with error code. See “systemctl status mysql.service” and “journalctl -xe” for detls.
重載完成后,您可以使用以下命令檢查MySQL服務(wù)的狀態(tài):
$ sudo systemctl status mysql.service
您應(yīng)該看到MySQL正在運行。
6.測試連接
為了確保修改后的MySQL服務(wù)器工作正常,請測試連接。用以下命令登錄MySQL服務(wù)器:
$ mysql -u root -p
如果MySQL請求密碼,請輸入您的密碼。如果未提示密碼,請按回車鍵繼續(xù)。一旦你這樣做,你應(yīng)該看到MySQL命令行提示符。嘗試運行一些命令和查詢,以確保服務(wù)器運行正常。
MySQL是許多現(xiàn)代web應(yīng)用程序的核心組件,不僅是因為其開放源代碼和可靠性,還因為它的高度自定義性。本指南介紹了如何使用Linux修改MySQL以滿足各種應(yīng)用程序的需求。您可以使用這些步驟來修改緩存大小和更大連接數(shù),以提高MySQL性能和效率。請注意,當(dāng)您更改MySQL配置文件時,總是建議備份文件以防意外的意外更改。
相關(guān)問題拓展閱讀:
- linux下怎么修改mysql的字符集編碼
- linux怎么修改mysql數(shù)據(jù)庫臨時表空間大小
linux下怎么修改mysql的字符集編碼
找到配置文件搭神
/etc/知漏虧mysql/my.cnf
在下面加上
default-character-set=utf8
在下面加上
default-character-set=utf8
重啟服務(wù)器
service mysql restart
在mysql中鍵入命令:
show variables like ‘搜逗character_set_%’
顯示結(jié)果如下:
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
可直接進入 mysql 進行更改,具體如下:
1.查找/etc目錄下是否有my.cnf文件;
#ls -l | grep my.cnf (在/etc下查找是否有my.cnf文件存在)
.如果沒有就要從/usr/share/mysql,拷貝一鎮(zhèn)碧個到/etc 下,在/usr/share/mysql目錄下有五個后綴為.cnf的文件,分別是 my-huge.cnf my-innodb-heavy-4G.cnf my-large.cnf my-medium.cnf my-all.cnf ;從中隨便拷貝一個到/etc目盯盯錄下并御則舉將其改為my.cnf文件,我選擇的是my-medium.cnf :
#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
.修改my.cnf文件,在該文件中的三個地方加上 default-character-set=utf8( )
#vi /etc/my.cnf
修改如下:(紅色為添加部分)
#password= your_password
port= 3306
socket= /var/lib/mysql/mysql.sock
default-character-set=utf8
port= 3306
socket= /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-character-set=utf8
init_connect=’SET NAMES utf8′ //此行可不加
no-auto-rehash
default-character-set=utf8
保存退出;
.重起MySQL服務(wù)器,使其設(shè)置的內(nèi)容生效
#/etc/init.d/mysql restart
. 重新登入mysql;
# mysql -u root – p
#(輸入密碼)
mysql> show variables like ‘character_set%’ ;
+++
| Variable_name| Value|
+++
| character_set_client | utf|
| character_set_connection | utf|(都生成了utf8,成功了 哈哈哈)
| character_set_database | utf|
| character_set_filesystem | binary|
| character_set_results | utf|
| character_set_server | utf|
| character_set_system | utf|
| character_sets_dir| /usr/share/mysql/charsets/ |
+++
mysql啟動和停止 操作 :
可以通過 #/etc/init.d/mysql (實現(xiàn)啟動,停止,重啟)
也可以通過 #service mysql (實現(xiàn)啟動,停止,重啟)
*********************************
另外:如果在修改字符集前,嘗試在數(shù)據(jù)庫中插入中文,那么當(dāng)修改了字符集后,在你所插入中文的數(shù)據(jù)庫中(在別的數(shù)據(jù)庫中可能沒問題),
通過show variables like ‘character_set%’查詢的結(jié)果可如下:
+++
| Variable_name| Value|
+++
| character_set_client | utf|
| character_set_connection | utf|
| character_set_database | latin|
| character_set_filesystem | binary|
| character_set_results | utf|
| character_set_server | utf|
| character_set_system | utf|
| character_sets_dir| /usr/share/mysql/charsets/ |
+++
設(shè)定初始語言就行了啊祥凱
這個也是很重要的, 否則亂碼
linux怎么修改mysql數(shù)據(jù)庫臨時表空間大小
先來說說臨時表的概念。 臨時表顧名思義,就是臨時的,用完銷毀掉的表。 數(shù)據(jù)既可以保存在臨時的文件系統(tǒng)上,也可以保存在固定的磁盤文件系統(tǒng)上。 臨時表有下面幾種:
1全局臨時表
這種臨時表從數(shù)據(jù)庫實例啟動后開始生效,在數(shù)據(jù)庫實例銷毀后失效。在MySQL里面這種臨時表對應(yīng)的是內(nèi)存表,即memory引擎。
2會話級別臨時表
這種臨時表在用戶登錄系統(tǒng)成功后生效,在用戶退出時失效。在MySQL里的臨時表指的就是以 create temporary table 這樣的關(guān)鍵詞創(chuàng)建的表。
3事務(wù)級別臨時表
這種臨時表在事務(wù)開始時生效,事務(wù)提交或者回滾后失效。 在MySQL里面沒有這種臨時表,必須利用會話級別的臨時表間接實現(xiàn)。
4檢索級別臨時表
這種臨時表在SQL語句執(zhí)行之間產(chǎn)生,執(zhí)行完畢后失效。 在MySQL里面這種臨時表不是很固定,跟隨MySQL默認(rèn)存儲引擎來變化。比如默認(rèn)存儲引擎是MyISAM,臨時表的引擎就是MyISAM,并且文件生成形式以及數(shù)據(jù)運作形式和MyISAM一樣,只是數(shù)據(jù)保存在內(nèi)存里;如果默認(rèn)引擎是INNODB,那么臨時表的引擎就是INNODB,此時它的所有信息都保存在共享表空間ibdata里面。
MySQL 5.7對于InnoDB存儲引擎的臨時表空間做了優(yōu)化。在MySQL 5.7之前,INNODB引擎的臨時表都保存在ibdata里面,而ibdata的貪婪式磁盤占用導(dǎo)致臨時表的創(chuàng)建與刪除對其他正常表產(chǎn)生非常大的性能影響。在MySQL5.7中,對于臨時表做了下面兩個重要方面的優(yōu)化:
MySQL5.7 把臨時表的數(shù)據(jù)以及回滾信息(僅限于未壓縮表)從共享表空間里面剝離出來,形成自己單獨的表空間,參數(shù)為innodb_temp_data_file_path。
在MySQL5.7 中把臨時表的相關(guān)檢索信息保存在系統(tǒng)信息表中:information_schema.innodb_temp_table_info. 而MySQL 5.7之前的版寬判念本想要查看臨時表的系統(tǒng)信息是沒有太好的辦法。
需要注意的一點慎困就是,雖然INNODB臨時表有自己的表空間,但是目前還不能自己定義臨時表空間文件沖虧的保存路徑,只能是繼承innodb_data_home_dir。此時如果想要拿其他的磁盤,比如內(nèi)存盤來充當(dāng)臨時表空間的保存地址,只能用老辦法,做軟鏈。舉個小例子:
我現(xiàn)在用的OS是 Ubuntu12.X,想用tmpfs文件系統(tǒng)充當(dāng)臨時表空間,
root@ytt-master-VirtualBox:/usr/local/mysql/data# ln -s/run/shm/ /usr/local/mysql/data/tmp_space2
root@ytt-master-VirtualBox:/usr/local/mysql/data#ls -l | grep ‘shm’
lrwxrwxrwx1 root root 9 Nov 13 10:28tmp_space2 -> /run/shm/
然后把
innodb_temp_data_file_path=tmp_space2/ibtmp2:200M:autoextend
添加到my.cnf里的下面一行
重啟MySQL服務(wù)后,
mysql>select @@innodb_temp_data_file_path\G
***************************1. row ***************************
@@innodb_temp_data_file_path:tmp_space2/ibtmp2:200M:autoextend
1 rowin set (0.00 sec)
先寫一個批量創(chuàng)建臨時表的存儲過程:
DELIMITER$$
USE`t_girl`$$
DROPPROCEDURE IF EXISTS `sp_create_temporary_table`$$
CREATEDEFINER=`root`@`localhost` PROCEDURE `sp_create_temporary_table`(
IN f_cnt INT UNSIGNED )
BEGIN
DECLARE i INT UNSIGNED DEFAULT 1;
WHILE i call sp_create_temporary_table(10);
QueryOK, 0 rows affected (0.07 sec)
如果在以前,我們只知道創(chuàng)建了10張臨時表,但是只能憑記憶或者手工記錄下來臨時表的名字等信息。
現(xiàn)在可以直接從數(shù)據(jù)字典里面檢索相關(guān)數(shù)據(jù)。
mysql> select * frominformation_schema.innodb_temp_table_info;
++++++-+
|TABLE_ID | NAME | N_COLS | SPACE| PER_TABLE_TABLESPACE | IS_COMPRESSED |
++++++-+
| 56 | #sql1705_2_9 | 5 | 36 | FALSE | FALSE |
| 55 | #sql1705_2_8 | 5 | 36 | FALSE |FALSE |
| 54 | #sql1705_2_7 | 5 | 36 | FALSE | FALSE |
| 53 | #sql1705_2_6 | 5 | 36 | FALSE | FALSE |
| 52 | #sql1705_2_5 | 5 | 36 | FALSE |FALSE |
| 51 | #sql1705_2_4 | 5 | 36 | FALSE | FALSE |
| 50 | #sql1705_2_3 | 5 | 36 | FALSE | FALSE |
| 49 | #sql1705_2_2 | 5 | 36 | FALSE |FALSE |
| 48 | #sql1705_2_1 | 5 | 36 | FALSE | FALSE |
| 47 | #sql1705_2_0 | 5 | 36 | FALSE | FALSE |
++++++-+
10rows in set (0.00 sec)
功能性我就寫到這里,大家性能方面如果有興趣可以找時間去測試。
一般分為沒碼windows和linux
windows通常放在安裝目悶高錄下的 \MySQL\MySQL Server 5.0\my.ini
Linux 默認(rèn)是放在 /etc/my.cnf
關(guān)于linux mysql 修改的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專注四川成都IDC機房服務(wù)器托管/機柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機房租用、服務(wù)器托管、機柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。
標(biāo)題名稱:教程:如何使用Linux修改MySQL?(linuxmysql修改)
當(dāng)前地址:http://www.dlmjj.cn/article/djjcjpd.html


咨詢
建站咨詢
