日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库系统配置文件_MySQL数据库(6)----配置文件 my.cnf 的使用

發(fā)布時間:2024/10/5 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库系统配置文件_MySQL数据库(6)----配置文件 my.cnf 的使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.  使用源碼安裝好MySQL后,其配置文件一般位于 /usr/local/my.cnf,可以使用如下命令查看查看配置文件的搜索順序:

root@javis:~$ mysqld --help --verbose | grep -B1 -i "my.cnf"

2016-07-26 20:12:24 0 [Note] mysqld (mysqld 5.6.31) starting as process 5732...2016-07-26 20:12:24 5732 [Note] Plugin 'FEDERATED'is disabled.

Default options are read from the following filesin the given order:

/etc/mysql/my.cnf /etc/my.cnf /usr/local/mysql/my.cnf ~/.my.cnf--

-P, --port=# Port number to use for connection or 0to default to,

my.cnf, $MYSQL_TCP_PORT,/etc/services, built-indefault2016-07-26 20:12:25 5732[Note] Binlog end2016-07-26 20:12:25 5732 [Note] Shutting down plugin 'MyISAM'

2016-07-26 20:12:25 5732 [Note] Shutting down plugin 'CSV'

可以看到,紅色標記的那一段話顯示搜索 my.cnf 的順序為 /etc/mysql/my.cnf、/etc/my.cnf、/usr/local/mysql/my.cnf、~/.my.cnf。

使用 'ls /etc/mysql' 命令查看到本機沒有 /etc/mysql 目錄。為了加快搜索速度,將 my.cnf 文件從 /usr/local/mysql/my.cnf 移動到 /etc/my.cnf

mv /usr/local/mysql/my.cnf /etc/my.cnf

2. 配置 my.cnf ,是MySQL默認使用小寫的名字來對數(shù)據(jù)庫和表進行命名。

UNIX/Linux系統(tǒng)上的MySQL會區(qū)分數(shù)據(jù)庫和表名字的大小寫。解決此問題的一種辦法是,固定使用一種大小寫形式的名字。另一種辦法是,在啟動服務器時,將 lower_case_table_names 系統(tǒng)變量設置為1,這個設置有下面兩個效果:

(i)在為某個表創(chuàng)建相應的磁盤文件之前,服務器會先把該表的名字轉換為小寫。

(ii)在語句里引用這個表時,服務器會在試圖到磁盤上查找這個表之前,把它的名字轉換為小寫。

這種做法的結果是,不管文件系統(tǒng)是否區(qū)分大小寫,所有名字都不會區(qū)分大小寫。如此一來,在系統(tǒng)間移動數(shù)據(jù)庫和表會變得容易。不過,這里提醒一下,如果打算使用這種策略,則必須在開始創(chuàng)建數(shù)據(jù)庫或表之前(而不是之后)通過服務器配置,將 lower_case_table_names 系統(tǒng)變量設置為1。如果在設置此變量之前,已經創(chuàng)建了數(shù)據(jù)庫或表,而且其名字里包含大寫字母,那么這個設置將無法產生預期的效果,因為磁盤里已經存儲了某些不全為小寫字母的名字。為避免出現(xiàn)這個問題,可以先把名字里有大寫字母的表全部重新命名為小寫字母形式,然后再來設置 lower_case_table_names 系統(tǒng)變量。(可以用 ALTER TABLE 或 RENAME TABLE 語句來重新命名表。)如果有很多表需要重新命名,或者有許多數(shù)據(jù)庫的名字包含大小寫字母,那么更簡單的辦法是選轉儲這些數(shù)據(jù)庫,然后在設置了 lower_case_table_names 系統(tǒng)變量之后,再重新創(chuàng)建它們。步驟如下:

(1)用 mysqldump 工具將各個數(shù)據(jù)庫轉儲出來:

% mysqldump --database -p -uroot db_name > db_name.sql

(2)用 DROP DATABASE 語句刪除這些數(shù)據(jù)庫。

(3)關閉服務器,配置 my.cnf 文件,添加 'lower_case_table_names=1' 語句,然后重啟 mysqld 服務器。

(4)用mysql 程序重新加載所有的轉儲文件:

% msyql -p -uroot < db_name.sql

由于設置了 lower_case_table_names,所有的數(shù)據(jù)庫和表在重新創(chuàng)建之后在磁盤里的名字將全部為小寫。

示例如下:

mysql> CREATE TABLE MyTABle (Name varchar(1), id int not null auto_increment , primary key (id) );

Query OK, 0 rows affected (0.29 sec)

mysql> show tables;

+------------------+

| Tables_in_sampdb |

+------------------+

| absence |

| grade_event |

| member |

| mytable |

| president |

| score |

| student |

+------------------+

7 rows in set (0.00 sec)

mysql> desc mytable;

+-------+------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-------+------------+------+-----+---------+----------------+

| Name | varchar(1) | YES | | NULL | |

| id | int(11) | NO | PRI | NULL | auto_increment |

+-------+------------+------+-----+---------+----------------+

2 rows in set (0.01 sec)

由上可見,使用 CREATE TABLE 命令創(chuàng)建了 MyTABle 表,但MySQL按照默認的 lower_case_table_names 設置,將表名存儲為 'mytable'。并且由 'desc mytable' 命令可以看出,lower_case_table_names 并沒有影響到 column_name,因為 mytable 表的Name列的列名依然為Name。

總結

以上是生活随笔為你收集整理的mysql数据库系统配置文件_MySQL数据库(6)----配置文件 my.cnf 的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。