linux默認安裝的mysql
安裝完的MySQL的默認字元集為 latin1 ,為了要將其字元集改為用戶所需要的(比如utf8),就必須改其相關的配置文件;由於linux下MySQL的默認安裝目錄分布在不同的文件下;不像windows一樣放在同一目錄下,只需修改其中的my.ini文件,重起後就生效了;所以先來看看linux下MySQL的資料庫文件、配置文件和命令文件分別在不同的目錄 :
1、資料庫目錄,其所創建的資料庫文件都在該目錄下
/var/lib/mysql/
2、配置文件 (mysql.server命令及配置文件所在地)
/usr/share/mysql
3、相關命令(如mysql mysqladmin等)
/usr/bin
4、啟動腳本(如mysql啟動命令)
/etc/rc.d/init.d/
查看默認字元集
#mysql -u root - p
#(輸入密碼)
mysql> show variables like 'character_set%' ;//或者是status
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
修改字元集 :
1.查找/etc目錄下是否有my.cnf文件;
#ls -l | grep my.cnf (在/etc下查找是否有my.cnf文件存在)
2.如果沒有就要從/usr/share/mysql,拷貝一個到/etc 下,在/usr/share/mysql目錄下有五個後綴為.cnf的文件,分別是 my-huge.cnf my-innodb-heavy-4G.cnf my-large.cnf my-medium.cnf my-small.cnf ;從中隨便拷貝一個到/etc目錄下並將其改為my.cnf文件,選擇的是my-medium.cnf :
#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
3.修改my.cnf文件,在該文件中的三個地方加上 default-character-set=utf8([client] [mysqld] [mysql])
#vi /etc/my.cnf
修改如下:(紅色為添加部分)
[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
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' //此行可不加
[mysql]
no-auto-rehash
default-character-set=utf8
保存退出;
4.重起MySQL伺服器,使其設置的內容生效
#/etc/init.d/mysql restart
5. 重新登入mysql;
# mysql -u root - p
#(輸入密碼)
mysql> show variables like 'character_set%' ;
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |(都生成了utf8,成功了。)
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql啟動和停止 操作 :
可以通過 #/etc/init.d/mysql [start | stop | restart](實現啟動,停止,重啟)
也可以通過 #service mysql [start | stop | restart](實現啟動,停止,重啟)
*********************************
另外:如果在修改字元集前,嘗試在資料庫中插入中文,那麼當修改了字元集後,在所插入中文的資料庫中(在別的資料庫中可能沒問題),
通過show variables like 'character_set%'查詢的結果可如下:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
如上圖,character_set_database仍然會為latin1,採取的辦法是先導出該資料庫中數據,如果數據不重要,則可drop此資料庫,
然後再重新create一個資料庫。
② 怎樣找到linux下mysql安裝目錄並改變安裝目錄
MySQL是一個關系型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下公司。
1.安裝方法有兩種,一種是yum安裝,另外一種是源碼安裝
rpm安裝命令如下
yum install mysql-server -y
2.查看相關路徑的方法如下
[root@rhel5 ~]# find / -name mysql -print
/etc/rc.d/init.d/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/var/lock/subsys/mysql
/usr/lib/mysql
/usr/include/mysql
/usr/share/mysql
/usr/bin/mysql
而 data默認放在:/var/lib/mysql
2.一般來說只要修改數據的存放路徑就可以,修改方法如下
原路徑:/var/lib/mysql
目標路徑:/home/data/mysql
(1)home目錄下建立data目錄
cd /home
mkdir data
(2)停止mysql進程
service mysqld stop
(3)把/var/lib/mysql整個目錄保持許可權復制到/home/data
cp -arp /var/lib/mysql/home/data/
(4)找到my.cnf配置文件
如果/etc/目錄下沒有my.cnf配置文件,請到/usr/share/mysql/找到my-medium*.cnf文件,拷貝到/etc/並改名為my.cnf
命令如下:
[root@test1 mysql]# cp
/usr/share/mysql/my-medium.cnf/etc/my.cnf
(5)編輯/etc/my.cnf
為保證MySQL能夠正常工作,需要指明mysql.sock文件的產生位置。修改
socket=/var/lib/mysql/mysql.sock 為:
socket=/home/data/mysql/mysql.sock
操作如下:
vi my.cnf (用vi工具編輯my.cnf文件,找到下列數據修改之)
# The MySQL server[mysqld]
port= 3306
#socket =
/var/lib/mysql/mysql.sock(原內容,為了更穩妥用「#」注釋此行)
socket = /home/data/mysql/mysql.sock(加上此行)
(6)修改MySQL啟動腳本/etc/init.d/mysql
搜索datadir將/var/lib/mysql修改成現在的實際存放路徑:home/data/mysql
[root@test1 etc]# vi/etc/init.d/mysql
get_mysql_option mysqld datadir "/data/mysql"
最後做一個mysql.sock 鏈接:
ln -s /home/data/mysql/mysql.sock
/var/lib/mysql/mysql.sock(需要從/home/data/mysql下復制一份過來)
(7)重新啟動MySQL服務
service mysqld restart
最後創建資料庫,查看目標目錄下是否已經存在
③ Mysql默認是安裝到Linux哪個目錄下
MySQL安裝完成後不象SQL Server默認安裝在一個目錄,它的資料庫文件、配置文件和命令文件分別在不同的目錄,了解這些目錄非常重要,尤其對於Linux的初學者,因為 Linux本身的目錄結構就比較復雜,如果搞不清楚MySQL的安裝目錄那就無從談起深入學習。
下面就介紹一下這幾個目錄。
1、資料庫目錄
/var/lib/mysql/
2、配置文件
/usr/share/mysql(mysql.server命令及配置文件)mysql5.5之後的默認安裝路徑,mysql5.5之前的是/usr/local/mysql
3、相關命令
/usr/bin(mysqladmin mysqlmp等命令)
4、啟動腳本
/etc/rc.d/init.d/(啟動腳本文件mysql的目錄)
關於命令的介紹,看看《linux就該這么學》,具體關於這一章地址3w(dot)linuxprobe/chapter-02(dot)html.
④ linux版mysql安裝後mysql的日誌文件找不到
這個要看安裝mysql的配置,默認安裝及日誌文件如下:
mysql安裝
yum -y install mysql mysql-server mysql-devel
chkconfig --level 35 mysqld on
/etc/init.d/mysqld start