Linux編譯安裝MySQL5.6及修改字符集

李振良發表於2016-05-05

環境準備:

mysql5.5以後./configure編譯方式就改為cmake工具來編譯。

安裝依賴包: yum install -y cmake gcc gcc-c++ make cmake ncurses ncurses-devel

建立mysql使用者和組:

groupadd mysql

useradd -g mysql -s /sbin/nologin mysql

1.安裝mysql

下載:http://dev.mysql.com/downloads/mysql

1
2
3
4
5
6
tar zxvf mysql-5.6.14.tar.gz
cd mysql-5.6.14
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.6 
-DSYSCONFDIR=/usr/local/mysql/etc 
-DMYSQL_DATADIR=/usr/local/mysql5.6/data
make && make install

如果依賴包沒有安裝,編譯配置會報錯缺少什麼庫,安裝相關包即可,再刪除CMakeCache.txt!

2.初始化資料庫和配置

1
2
3
4
5
6
7
8
9
10
11
12
/usr/local/mysql5.6/scripts/mysql_install_db 
--basedir=/usr/local/mysql5.6 --datadir= /usr/local/mysql5.6/data 
--user=mysql& #初始化資料庫
mkdir -p /usr/local/mysql5.6/etc
cp support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/init.d/mysqld
chown -R root.mysql /usr/local/mysql/         #賦予mysql屬組許可權
chown -R mysql.mysql /usr/local/mysql/data    #賦予資料存放目錄許可權
/usr/local/mysql5.6/bin/mysqld_safe –user=mysql&       #安全啟動mysql
echo‘PATH=$PATH:/usr/local/mysql/bin` >> /etc/profile  #設定變數,方便使用mysql命令
source /etc/profile

3.設定mysql預設建立資料庫編碼

1
2
3
4
5
6
7
vi /usr/local/mysql/etc/my.cnf
在[mysqld]下新增
default-character-set=utf8
或者 default-character-set=gbk  #防止網站出現亂碼
在[client]下新增
default-character-set=utf8
或者 default-character-set=gbk

4.測試是否安裝成功

service mysqld start

如果啟動報錯:

Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/202.pid)

解決:rm -rf /etc/my.cnf #刪除自帶的配置檔案

1
2
3
4
5
6
7
8
9
10
11
mysqladmin -uroot password `123.com`  #設定初次登陸mysql密碼
mysql -u root -p123456
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| test |
+——————–+
6rows inset(0.00sec)

5.常用編譯引數

1
2
3
4
5
6
7
8
9
10
11
12
13
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  #安裝路徑
-DMYSQL_DATADIR=/usr/local/mysql/data    #資料檔案存放位置
-DSYSCONFDIR=/usr/local/mysql/etc        #my.cnf路徑
-DWITH_MYISAM_STORAGE_ENGINE=1           #支援MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1         #支援InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1           #支援MEMORY引擎
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock       #連線資料庫socket路徑
-DMYSQL_TCP_PORT=3306                    #預設埠
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk    #安裝需要的字符集
-DDEFAULT_CHARSET=utf8                   #預設字符集
-DDEFAULT_COLLATION=utf8_general_ci      #設定預設效驗字符集排序規則,要和DDEFAULT_CHARSET一起用
-DMYSQL_USER=mysql                       #執行使用者
-DWITH_COMMENT=’string’                #註釋儲存型別

6、MySQL字符集介紹及修改(編碼)

常用字符集:atin英文,big5繁體中文,GB2312中文,UTF8通用語言

Mysql對於字符集的支援細化到四個層次:

伺服器(server);

資料庫(database);

資料表(table)(欄位column);

連線(connection);

方法1:主配置檔案修改my.cnf

[mysqld]

character_set_server=utf8

[mysql]

default-character-set=utf8


重啟mysql!

方法2:Mysql命令修改(網站亂碼如下解決)

1.檢視資料庫使用的字符集:

1
2
3
mysql> show variables like `character\_set\_%`;
mysql> show variables like `char%`;
mysql> show create table tablename;  #檢視建立表時字符集

2.修改預設字符集

 2.1修改伺服器預設字符集

 set character_set_server=utf8

 2.2修改資料庫字符集

 set character_set_database=utf8;

 2.3修改資料庫客戶端字符集

 set character_set_client=utf8;

 2.4修改連線預設字符集

 set character_set_connection=utf8

3.修改已經存在庫的字符集

 3.1修改存在資料庫的字符集

 alter database mydb character set utf-8;

 3.2修改存在表的字符集

 alter table mytable default character set utf8

 3.3修改存在表欄位字符集

 alter table mytable change old_column new_column varchar(255) character set utf8; 


相關文章