本文目錄一覽:
- 1、linux下rpm安裝mysql,如何修改默認字符集為utf8
- 2、linux伺服器上的mysql字符集里沒有GBK編碼
- 3、linux 安裝mysql, 不支持GBK字符集
- 4、如何在linux中安裝mysql
linux下rpm安裝mysql,如何修改默認字符集為utf8
如果/etc/目錄下沒有my.cnf配置文件,請到/usr/share/mysql/下找到*.cnf文件,拷貝其中一個到/etc/並改名為my.cnf中;
不存在啟動不了的情況啊,如有啟動不了,仔細查看你的my.cnf文件,是不是哪裡配置需要修改,然後查看一下mysql啟動腳本/etc/rc.d/init.d/mysql。最重要的結合你mysql的錯誤日誌去分析。
設置默認utf-8
在文件my.cnf中加上如下配置:
[mysqld]
init_connect = ‘SET NAMESutf8’
character-set-server = utf8
collation-server =utf8_general_ci
針對第三點:
在創建資料庫完成後,最好查看下你資料庫的字符集是什麼?用show create database test;命令可以看到。必須保證你資料庫的編碼格式是utf-8的,這樣才可以保證插入到資料庫中的是中文格式的
linux伺服器上的mysql字符集里沒有GBK編碼
如果你是編譯安裝的話,你最好加上–with-charset=gbk
–with-extra-charsets=all
另外,如果你上面編譯的時候使用了–with-charset=gbk
,那麼你創建的資料庫默認就是gbk字符集,否則,需要你在創建資料庫時指定資料庫的字符集,
如:create
database
dbname
default
character
set
gbk;
linux 安裝mysql, 不支持GBK字符集
安裝完的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
1.首先在liunx下安裝Mysql資料庫
~$ sudo apt-get install mysql-server #安裝Mysql伺服器端
~$ ps -aux|grep mysql #檢查Mysql伺服器進程
beili 10301 0.0 0.0 37080 3604 pts/7 S+ 5月20 0:00 mysql -u root -p
mysql 25125 0.0 0.0 4472 1704 ? Ss 09:51 0:00 /bin/sh /usr/bin/mysqld_safe
mysql 25496 0.0 3.1 859956 127084 ? Sl 09:51 0:01 /usr/sbin/mysqd –basedir=/usr –datadir=/var/lib/mysql –plugin-dir=/usr/lib/mysql/plugin –log-error=/var/log/mysql/error.log –pid-file=/var/run/mysqld/mysqld.pid –socket=/var/run/mysqld/mysqld.sock –port=3306
beili 26652 0.0 0.0 13708 2180 pts/19 S+ 10:32 0:00 grep –color=auto mysql
~$ netstat -nlt|grep 3306 #檢查Mysql伺服器佔用埠
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
~$ /etc/init.d/mysql status # 通過啟動命令檢查Mysql伺服器狀態
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since 四 2015-05-21 09:51:13 CST; 43min ago
Process: 25126 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 25122 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
~$ service mysql status # 通過系統服務檢查Mysql伺服器狀態
● mysql.service – MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since 四 2015-05-21 09:51:13 CST; 44min ago
Process: 25126 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 25122 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
~$ whereis mysql # 查看mysql各個文件安裝的目錄
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
2.訪問和配置Mysql
$ mysql -u root -p
Enter password:
mysql默認的字符集為latin1的,所以要改為utf8的。很多網上的文章執行「sudo vi /etc/mysql/my.cnf」,可是打開一看,裡面就兩行話:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
想來mysql的配置文件應該是在那兩個文件夾下面,於是嘗試之下打開了/etc/mysql/mysql.conf.d/ 下的mysqld.cnf文件,執行下面的命令:
~$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
…
[client]
default-character-set=utf8
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
…
註:棕色部分是添加的內容
重啟mysql服務,並查看字符集的設置情況:
~$ sudo /etc/init.d/mysql restart
~$ mysql -u root -p
mysql show variables like “%char%”
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | 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/ |
原創文章,作者:OOQT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/150204.html