mysql5.7 原始碼安裝步驟
作業系統:centos 7
mysql版本:5.7 下載地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
說明:以下都是root使用者操作的。
一、資料庫安裝
1、檢視系統是否有舊版的mysql
# rpm -qa |egrep -i 'mysql|mariadb'
如果有的話請先解除安裝,解除安裝命令:
# rpm -ev 軟體包名稱
2、檢視老版本mysql相關的安裝目錄:
# find / -name mysql
有的話就刪掉
3、建立/data/mysql目錄用於存放mysql軟體包,並下載軟體包
# mkdir -p /data/mysql
# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
4、解壓軟體包並重命名
# cd /data/mysql
# tar zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
# mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql-5.7.24
5、建立mysql使用者(如果原來已經存在該使用者,可以繼續使用,也可以重新刪除建立,刪除使用者命令: userdel -r mysql)
# groupadd mysql # useradd -r -s /sbin/nologin -g mysql mysql
# getent passwd mysql #該命令用於檢視是否成功建立mysql使用者
mysql:x:986:1001::/home/mysql:/sbin/nologin
7、修改/etc/my.cf檔案
[mysqld] basedir=/data/mysql/mysql-5.7.24 #新新增的,用於mysql初始化的時候去找相應的lib庫等等。datadir=/data/mysql/mysql-5.7.24/data #原配置修改的,存放資料的目錄 socket=/data/mysql/mysql-5.7.24/mysql.sock #原配置修改的,mysql的sock檔案 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] log-error=/data/mysql/mysql-5.7.24/mysql.err-log #原配置修改的,mysql錯誤日誌存放路徑 character-set-server=utf8 #新增的,指定字元編碼 pid-file=/data/mysql/mysql-5.7.24/mysql.pid #原配置修改的,指定pid # # include all files from the config directory # !includedir /etc/my.cnf.d
7、建立資料目錄,日誌目錄等並授權
# cd /data/mysql/mysql-5.7.24 # mkdir data # touch {mysql.sock,mysql.err-log,mysql.pid} # chmod 755 data/ mysql.err-log mysql.pid mysql.sock # chown -R mysql:mysql /data/mysql/mysql-5.7.24
8、資料庫初始化
# cd /data/mysql/mysql-5.7.24/bin/
# ./mysqld --initialize --user=mysql --basedir=/data/mysql/mysql-5.7.24 --datadir=/data/mysql/mysql-5.7.24/data
注:localhost:後面生成的是資料庫的密碼,請儲存下來。
9、後臺啟動
# ./mysqld_safe --user=mysql &
10、檢視程序,以確定是否啟動成功
# ps -ef |grep mysql
11、測試連線
# ./mysql -uroot -p
Enter password: # 剛剛生成的那個隨機密碼
在這裡出錯了,報錯如下:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 提示找不到sock檔案,在這裡的話就去/etc/my.cnf檔案裡面把socket這一行改成/tmp/mysql.sock吧,如下:
socket=/tmp/mysql.sock
然後重新啟動mysql,就可以正常進入到資料庫了。
12、修改環境變數
每次進入資料庫都要去bin目錄執行對應的指令碼,所以,這裡設定環境變數更方便一點
# vim ~/.bashrc
檔案最後新增如下兩行:
export MYSQL_HOME=/data/mysql/mysql-5.7.24/
export PATH=$PATH:${MYSQL_HOME}/bin
# source ~/.bashrc
13、配置mysql的啟動
# cp /data/mysql/mysql-5.7.24/support-files/mysql.server /etc/init.d/mysql
# vim /etc/init.d/mysql
修改如下兩行的值,這兩行預設為空。
以後就可以通過/etc/init.d/mysql start方式啟動資料庫了
好了,基本安裝就算完成了。
二、資料庫修改密碼和授權
修改資料庫密碼,剛剛生成的密碼不太好記,所以我們這裡修改一個自己熟悉的比較好記的密碼,我這裡測試,密碼就設定的比較簡單,生成環境建議設定的複雜一些;
第一種修改root密碼的方式:(用mysqladmin命令列工具)
# mysqladmin -uroot -p '舊密碼' password '新密碼'
例:mysqladmin -uroot -p 'Pnh=?_Edg2+V' password '123456'
第二種方式:(登入資料庫,用set password方式)
mysql> set password for 使用者名稱@localhost = password('新密碼'); 例:mysql> set password for [email protected] = password('123');
第三種方式:(用update直接修改user表)
mysql>use mysql; mysql>update user set password=password('1234') where user='root' and host='localhost'; mysql>flush privileges;
第四種方法:如果剛剛生成的隨機密碼忘記了怎麼辦?
解決:
# mysqld --skip-grant-tables #啟動mysql服務的時候跳過許可權表認證。注:這個視窗不會關閉,需要重新開啟另外一個埠進行操作,執行這個命令的時候我這裡報錯了,如下:
[ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
解決:開啟/etc/my.cnf,在mysqld下面新增user=mysql就ok
在另外一個埠執行mysql進入資料庫控制檯
# mysql
mysql>use mysql
mysql>update user set password=password("123456789") where user="root";
mysql>flush privileged
2、遠端授權
進入資料庫 # mysql -u root -p
mysql>grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;
mysql>flush privileges;