準備篇
一、配置防火牆,開啓80端口、3306端口
CentOS 7.0默認使用的是firewall作爲防火牆,這裏改爲iptables防火牆。
1、關閉firewall:
systemctl stopfirewalld.service #停止firewall
systemctl disablefirewalld.service #禁止firewall開機啓動
2、安裝iptables防火牆
yum installiptables-services #安裝
vi/etc/sysconfig/iptables #編輯防火牆配置文件
# Firewall configurationwritten by system-config-firewall
# Manual customizationof this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state--state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -jACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state--state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state--state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state--state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT--reject-with icmp-host-prohibited
-A FORWARD -j REJECT--reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
systemctl restartiptables.service #最後重啓防火牆使配置生效
systemctl enableiptables.service #設置防火牆開機啓動
二 、系統約定
軟件源代碼包存放位置:/usr/local/src
源碼包編譯安裝位置:/usr/local/軟件名字
四、下載軟件包
1、下載MySQL
http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.19.tar.gz
2、下載cmake(MySQL編譯工具)
http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz
五、安裝篇
一、安裝MySQL
1、安裝cmake
cd /usr/local/src
tar zxvfcmake-2.8.11.2.tar.gz
cd cmake-2.8.11.2
./configure
make
make install
2、安裝MySQL
首先centos7 已經不支持mysql,因爲收費了你懂得,所以內部集成了mariadb,而安裝mysql的話會和mariadb的文件衝突,所以需要先卸載掉mariadb,以下爲卸載mariadb,安裝mysql的步驟。
#列出所有被安裝的rpmpackage
rpm -qa | grep mariadb
#卸載
rpm -emariadb-libs-5.5.37-1.el7_0.x86_64
錯誤:依賴檢測失敗:
libmysqlclient.so.18()(64bit) 被 (已安裝)postfix-2:2.10.1-6.el7.x86_64
需要
libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝)postfix-2:2.10.1-6.el7.x86_64
需要
#強制卸載,因爲沒有--nodeps
rpm -e --nodepsmariadb-libs-5.5.37-1.el7_0.x86_64
groupadd mysql #添加mysql組
useradd -g mysql mysql-s /bin/false #創建用戶mysql並加入到mysql組,不允許mysql用戶直接登錄系統
mkdir -p /data/mysql #創建MySQL數據庫存放目錄
chown -R mysql:mysql/data/mysql #設置MySQL數據庫存放目錄權限
mkdir -p/usr/local/mysql #創建MySQL安裝目錄
cd /usr/local/src #進入軟件包存放目錄
tar zxvfmysql-5.6.19.tar.gz #解壓
cd mysql-5.6.19 #進入目錄
cmake .-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql-DSYSCONFDIR=/etc #配置
make #編譯
make install #安裝
rm -rf /etc/my.cnf #刪除系統默認的配置文件(如果默認沒有就不用刪除)
cd /usr/local/mysql #進入MySQL安裝目錄
./scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql #生成mysql系統數據庫
ln -s/usr/local/mysql/my.cnf /etc/my.cnf #添加到/etc目錄的軟連接
cp ./support-files/mysql.server/etc/rc.d/init.d/mysqld #把Mysql加入系統啓動
chmod 755/etc/init.d/mysqld #增加執行權限
chkconfig mysqld on #加入開機啓動
vi/etc/rc.d/init.d/mysqld #編輯
basedir=/usr/local/mysql#MySQL程序安裝路徑
datadir=/data/mysql#MySQl數據庫存放目錄
service mysqld start #啓動
vi /etc/profile #把mysql服務加入系統環境變量:在最後添加下面這一行
exportPATH=$PATH:/usr/local/mysql/bin
source /etc/profile
下面這兩行把myslq的庫文件鏈接到系統默認的位置,這樣你在編譯類似PHP等軟件時可以不用指定mysql的庫文件地址。
ln -s/usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s/usr/local/mysql/include/mysql /usr/include/mysql
mkdir /var/lib/mysql #創建目錄
ln -s /tmp/mysql.sock/var/lib/mysql/mysql.sock #添加軟鏈接
mysql_secure_installation#設置Mysql密碼,根據提示按Y 回車輸入2次密碼
Mysql就此安裝完畢,但是安裝完成後只能本機登錄 不能遠程登錄需要修改表來添加外部登陸權限
解決方法:
1。 改表法。
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,從"localhost"改稱"%"
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授權法。
例如,你想myuser使用mypassword從任何主機連接到mysql服務器的話。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允許用戶myuser從ip爲192.168.1.6的主機連接到mysql服務器,並使用mypassword作爲密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIEDBY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允許用戶myuser從ip爲192.168.1.6的主機連接到mysql服務器的dk數據庫,並使用mypassword作爲密碼
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
我用的第一個方法,剛開始發現不行,在網上查了一下,少執行一個語句 mysql>FLUSH RIVILEGES 使修改生效.就可以了
另外一種方法,不過我沒有親自試過的,在csdn.net上找的,可以看一下.
在安裝mysql的機器上運行:
1、d:\mysql\bin\>mysql -h localhost -u root //這樣應該可以進入MySQL服務器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION//賦予任何主機訪問數據的權限
3、mysql>FLUSH PRIVILEGES //修改生效
4、mysql>EXIT//退出MySQL服務器
這樣就可以在其它任何的主機上以root身份登錄啦!