天天看點

linux安裝源碼mysql需要多久,在 Linux 下源碼安裝 MySQL

1 下載下傳 MySQL 安裝包

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz

2 安裝 MySQL 依賴包

apt-get install build-essential

apt-get install libncurses5-devapt-get install cmake

提示:可通過 apt-cache depends 指令檢視以上程式包的相關依賴包。

CentOS:

yum groupinstall "Development Tools"yum install ncurses-devel

3 編譯并安裝 MySQL

1) 解壓 MySQL 安裝包

tar -zxf mysql-5.6.14.tar.gzcd mysql-5.6.14

2) 編譯 MySQL

cmake \

-DCMAKE_INSTALL_PREFIX=/opt/mysql \

-DMYSQL_DATADIR=/opt/mysql/data \

-DSYSCONFDIR=/opt/mysql/conf \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

3) 安裝 MySQL

make -smake install -s

4 配置 MySQL

注意:以下操作均在 /opt/mysql 目錄下進行。

第一步:建立 MySQL 使用者

groupadd mysqluseradd -g mysql -s "/usr/sbin/nologin" mysql

CentOS:addgroup mysql

useradd -g mysql -s "/sbin/nologin" mysql

第二步:初始化資料庫

chown mysql:mysql -R data

./scripts/mysql_install_db --user=mysql

執行完畢後,将在 MySQL 根目錄下生成一個 my.cnf 檔案。

第三步:建立配置檔案

mkdir confmv my.cnf conf/

注意:在 CentOS 下,若 /etc/ 目錄下存在 my.cnf 檔案,則需要将其删除。

第四步:更改預設字元集為 UTF8

vim conf/my.cnf

...

[mysql]

default-character-set=utf8

[mysqld]

character-set-server=utf8

...

為防止中文亂碼,建議将資料庫預設編碼方式統一改為 utf8,預設是 latin1。

第五步:添加啟動服務

cp support-files/mysql.server /etc/init.d/mysqld

update-rc.d mysqld defaults

移除啟動服務:update-rc.d -f mysqld remove

CentOS:

cp support-files/mysql.server /etc/init.d/mysqldchkconfig mysqld on

第六步:配置環境變量

vim ~/.bashrc

...

# MySQL

export PATH=$PATH:/opt/mysql/bin

source ~/.bashrc

5 啟動 MySQL 服務

service mysqld start

停止 MySQL 服務:

service mysqld stop

重新開機 MySQL 服務:

service mysqld restart

6 登入 MySQL

mysql -u root –p

随後需輸入 root 使用者密碼(root)。

7 設定 root 使用者密碼

set password = password('新密碼');

設定其他使用者密碼:set password for '使用者名'@'主機名' = password('新密碼');

指令行操作:mysqladmin -u root password '新密碼'

8 附錄

1) 清理 MySQL 使用者

select host, user, password from mysql.user;

delete from mysql.user where password = '';

flush privileges;

為了提高安全性,建議删除所有空密碼的使用者,僅保留 [email protected] 一個使用者。

2)建立使用者

create user '使用者名'@'主機名' identified by '密碼';

主機名可用 localhost、具體 IP、%(任意 IP)。

删除使用者:

drop user '使用者名'@'主機';

3)授權

grant 權限 on 資料庫名.表名 to '使用者名'@'主機名';

權限包括:all、select、insert、update、delete 等,多種權限可用“,”分割。

表名可用“*”通配符。

撤銷授權:

revoke 權限 on 資料庫名.表名 from '使用者名'@'主機名';

4) 遠端通路 MySQL

若需要通過 root 使用者遠端通路 MySQL,則需要修改 mysql.user 表的 host 為“%”。

update mysql.user set host = '%' where user = 'root';

flush privileges;

5) 開放 MySQL 端口

對于 CentOS 而言,需要對外開放 3306 端口。

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

/etc/init.d/iptables saveservice iptables restart

檢視 iptables:

/etc/init.d/iptables status或vim /etc/sysconfig/iptables