此處使用的MySQL為5.6版本夷恍。
卸載MySQL
首先卸載由RPM包安裝的MySQL。系統(tǒng)自帶的MySQL本質(zhì)也是由RPM包安裝的舌剂。
查詢系統(tǒng)中MySQL的相關(guān)程序:
rpm -qa | grep mysql
卸載MySQL相關(guān)程序:
rpm -e 包名 或 rpm -e --nodeps 包名
例:卸載mysql-libs
rpm -e mysql-libs #卸載
說明:若存在依賴關(guān)系气破,則無法被卸載聊浅。
忽略依賴關(guān)系卸載:
rpm -e --nodeps mysql-libs
刪除老版本的MySQL的開發(fā)頭文件和庫(若沒有使用RPM版本的MySQL,則該步驟不會使用到)
rm -fr /usr/lib/mysqlrm -fr /usr/include/mysql
注意:卸載后/var/lib/mysql中的數(shù)據(jù)及/etc/my.cnf不會刪除现使,如果確定沒用后就手工刪除
rm -f /etc/my.cnfrm -fr /var/lib/mysql
編譯安裝MySQL
配置編譯環(huán)境
MySQL5.5及以上版本都開始用cmake方式進(jìn)行配置編譯低匙。(MySQL5.0,5.1 均使用configure進(jìn)行配置。)所以需要先安裝好cmake
方法一:
yum-y install make gcc-c++ cmake bison-devel ncurses-devel
方法二:
CentOS5.5的yum沒有cmake碳锈,所以可以選擇編譯安裝cmake顽冶。
安裝編譯源碼所需的工具和庫
yum install gcc gcc-c++ ncurses-devel perl
安裝cmake,從 www.cmake.org 下載源碼并編譯安裝
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar -xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap ; make; make install
下載MySQL源碼包后開始編譯
tar -zxf mysql-5.6.23.tar.gz
cd mysql-5.6.23
一些準(zhǔn)備工作
設(shè)置MySQL用戶和組
新增mysql用戶組
groupadd mysql
新增mysql用戶
useradd -r -g mysql mysql
新建MySQL所需要的目錄
新建mysql安裝目錄
mkdir -p /usr/local/mysql
新建mysql數(shù)據(jù)庫數(shù)據(jù)文件目錄
mkdir -p /data/mysqldb
編譯安裝
CMake執(zhí)行腳本為:
cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysqldb \-DMYSQL_TCP_PORT=3306 \-DENABLE_DOWNLOADS=1
說明:
網(wǎng)上有些文章中給出的cmake命令如下:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_DATADIR=/data/mysql \-DMYSQL_USER=mysql \-DMYSQL_TCP_PORT=3306
編譯后警告顯示:
即MYSQL_USER等模塊式不可用的售碳。
此時强重,若需要重新配置,請刪除CMakeCache.txt文件:
rm CMakeCache.txt
去掉MYSQL_USER等不可被用的選項后贸人,再重新編譯即可间景。
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_DATADIR=/data/mysql \-DMYSQL_TCP_PORT=3306
編譯 & 安裝
makemake install
這兩步都需要很長時間,請耐心等待艺智。
修改mysql目錄所有者和組
修改mysql安裝目錄
cd /usr/local/mysqlchown -R mysql:mysql .
修改mysql數(shù)據(jù)庫文件目錄
cd /data/mysqldbchown -R mysql:mysql .
說明:
chown 最后跟文件名倘要。此處使用".",表示當(dāng)前目錄力惯。
啟動MySQL
初始化mysql數(shù)據(jù)庫
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
...... ......
說明:
從打印日志可以看出碗誉,mysql_install_db命令的作用是生成MySQL系統(tǒng)表召嘶。并且最后在mysql目錄下生成一個my.cnf文件父晶。
--user=mysql 作用是指定運行mysqld進(jìn)程的用戶名。設(shè)置這個用戶以后弄跌,所有通過mysqld進(jìn)程創(chuàng)建的文件(如日志等)都會屬于這個用戶甲喝。
mysql配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
注:如果/etc/my.cnf文件存在,則覆蓋铛只。
關(guān)于MySQL配置文件存在多個訪問位置埠胖。MySQL會以此訪問糠溜,后訪問到的配置會覆蓋先前的配置。
MySQL訪問配置文件的訪問路徑與訪問順序如下:
配置MySQL
[client]
#password = your_password
port = 3306
socket = /data/mysql/mysql.sock
default-character-set=utf8
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
### **character_set_server=utf8**
basedir=/data/mysql
datadir=/data/mysql/data
socket = /data/mysql/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
將MySQL執(zhí)行命令添加入PATH
vim /etc/profile
在文件的末尾添加內(nèi)容:
PATH=$PATH:/usr/local/mysql/bin
export PATH
保持退出后,執(zhí)行:
source /etc/profile
將MySQL設(shè)置為系統(tǒng)服務(wù)并啟動服務(wù)
cp support-files/mysql.server /etc/init.d/mysqld
即,MySQL可以以如下形式啟動:
service mysqld start
如果報錯 "Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/rhelubuntu.com.pid). " 則修改
vim /etc/init.d/mysqld
修改basedir=/usr/local/mysql -----mysql安裝位置
修改datadir=/var/data/mysqldata -----mysql數(shù)據(jù)文件存放位置
一般修改好這個再重新啟動mysql應(yīng)該不會報錯了读宙。
檢查MySQL是否已經(jīng)啟動:
netstat -tulnp | grep 3306
配置用戶
使用MySQL客戶端連接MySQL服務(wù)器
mysql -u root -p
初始密碼為空屁奏,如果能登陸上,則安裝成功檐蚜。
設(shè)置mysql管理員密碼
mysqladmin -u root password "123456";
則123456即為新密碼。
設(shè)置mysql 遠(yuǎn)程登錄
grant all on *.* to root@'%';
flush privileges;
更多配置,略锤悄。
配置防火墻
防火墻的3306端口默認(rèn)沒有開啟,若要遠(yuǎn)程訪問嘉抒,需要開啟這個端口
打開/etc/sysconfig/iptables
在"-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT"零聚,下添加:
-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT
然后保存,并關(guān)閉該文件些侍,在終端內(nèi)運行下面的命令隶症,刷新防火墻配置:
service iptables restart
CentOS 7中默認(rèn)使用Firewalld做防火墻,所以修改iptables后岗宣,在重啟系統(tǒng)后沿腰,根本不管用。
Firewalld中添加端口方法如下:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload