1,從官方網址下載MySQL5.7.19源碼包
2,安裝好CentOS6.7 64位操做系統。
3. 預先安裝依賴軟件包:yum -y install gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake libaio libaio-devel autoconf bzr bison libtool //相關依賴包
4
1 查看是否安裝過mysql
rpm -qa | grep mysql
若是安裝了,那就中止MySQL服務而且將其卸載
service mysqld stop
若是是rpm包安裝的就用rpm -e 卸載,若是yum安裝就用yum -y remove卸載。而且刪除安裝目錄等
正式安裝MySQL
2 添加MySQL用戶和所屬組(要先查看是否已經存在mysql用戶和組)
cat /etc/passwd | grep mysql //查看是否已存在mysql用戶
cat /etc/group | grep mysql //查看是否已存在mysql組
groupadd mysql //若是先執行下面的命令會提示沒有mysql這個組
useradd -r -g mysql mysql
3 建立mysql安裝目錄和數據目錄
cd /home
mkdir mysql //建立目錄做爲MySQL5.7.19安裝路徑
mkdir data //建立目錄做爲MySQL5.7.19數據路徑
四、 修改MySQL目錄全部者
chown -R mysql:mysql /home/mysql
5 解壓源碼包
把兩個包放到/home目錄下
tar -zxvf mysql-5.7.11.tar.gz
tar –zxvf boost_1_59_0.tar.gz boost會自動解壓到mysql目錄
編譯安裝
cmake \
-DCMAKE_INSTALL_PREFIX=/home/mysql \
-DMYSQL_DATADIR=/home/data/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=./boost/
make
make install
再次確認,返回 0 說明安裝成功沒有問題
echo $?
切換到安裝目錄:
cd /home/mysql/bin
初始化數據庫:
./mysqld --initialize --user=mysql --datadir=/home/data/ --basedir=/home/mysql --socket=/tmp/mysql.sock
版本初始化之後會給root用戶一個初始密碼
添加MySQL服務,拷貝mysql配置文件
cd /home/mysql/support-files/
cp -a mysql.server /etc/init.d/mysql
// 添加下面的,這裏爲了簡潔,省去其餘的,都是按照默認的
[root@Allen support-files]# vim /etc/my.cnf
[mysqld]
port=3306
basedir=/home/mysql
datadir=/home/data
socket=/tmp/mysql.sock
user=mysql
六、 重啓MySQL、並設置開機自啓
[root@Allen support-files]# service mysql start
Starting MySQL. SUCCESS!
[root@Allen support-files]#chkconfig mysql on //設置開機自啓,要養成一個好習慣
注意:親測mysql5.7.17 設置服務啓動是mysql 而不是mysqld,上面沒有打錯。多是由於版本的緣由。本人一開始就是編譯mysql5.7.17的。
[root@Allen support-files]# ps -ef //查看是啓動
七、 登陸MySQL
[root@Allen ~]#cd /home/mysql/bin
[root@Allen bin]# ./mysql -uroot –p
mysql> SET PASSWORD = PASSWORD('qwe12345');
mysql 新設置用戶或更改密碼後需用flush privileges刷新MySQL的系統權限相關表,不然會出現拒絕訪問,還有一種方法,就是從新啓動mysql服務器,來使新設置生效
mysql> flush privileges;
mysql> quit;
容許mysql遠程訪問
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;