幫助中心
這里有最新的使用文檔和教程
CentOS 8編譯安裝MySQL8.0.18,編譯安裝mysql,編譯安裝mysql8, linux 安裝mysql8
安裝前準備:
請參考編譯安裝Nginx 的安裝前準備: http://www.jinchangtalc.com/helpcontent/516.html
開始安裝MySQL
1、安裝rpcsvc-proto
cd /usr/local/src
tar zxvf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4
./configure
make
make install
2、安裝cmake
cd /usr/local/src
tar zxvf cmake-3.15.4.tar.gz
cd cmake-3.15.4
./configure
make
make install
3、安裝MySQL
cd /usr/local/src
mkdir -p /usr/local/boost
cp boost_1_70_0.tar.gz /usr/local/boost
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 zxvf mysql-8.0.18.tar.gz #解壓
cd mysql-8.0.18 #進入目錄
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_EMBEDDED_SERVER=1 -DFORCE_INSOURCE_BUILD=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DWITH_BOOST=/usr/local/boost
make #編譯
make install #安裝
編譯出錯, 重新編譯前要刪除編譯失敗的文件,重新編譯時,需要清除舊的對象文件和緩存信息。
make clean
rm -f CMakeCache.txt
rm -rf /etc/my.cnf #刪除系統默認的配置文件(如果默認沒有就不用刪除)
cd /usr/local/mysql #進入MySQL安裝目錄
./bin/mysqld --user=mysql --initialize --basedir=/usr/local/mysql --datadir=/data/mysql #生成mysql系統數據庫
--initialize表示默認生成密碼, --initialize-insecure 表示不生成密碼, 密碼為空。
看到這一行[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: LZrRpp40AG*-
記錄下自動生成的mysql管理員root賬號登錄密碼LZrRpp40AG*-
vi /usr/local/mysql/my.cnf #mysql 8.0.x默認沒有配置文件,我們自己創建一個。
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
user = mysql
socket=/tmp/mysql.sock
tmpdir = /tmp
key_buffer_size=16M
max_allowed_packet=128M
default_authentication_plugin=mysql_native_password #設置加密方式為mysql_native_password,MySQL 8.0默認使用caching_sha2_password加密。
open_files_limit = 60000
explicit_defaults_for_timestamp
server-id = 1
character-set-server = utf8
federated
max_connections = 1000
max_connect_errors = 100000
interactive_timeout = 86400
wait_timeout = 86400
sync_binlog=0
back_log=100
default-storage-engine = InnoDB
log_slave_updates = 1
[mysqldump]
quick
[client]
# The following password will be sent to all standard MySQL clients
password="my password"
[mysqld-8.0]
sql_mode=TRADITIONAL
[mysqladmin]
force
[mysqld]
key_buffer_size=16M
:wq! #保存退出
ln -s /usr/local/mysql/my.cnf /etc/my.cnf #添加到/etc目錄的軟連接
cp /usr/local/mysql/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數據庫存放目錄
:wq! #保存退出
service mysqld start #啟動
vi /etc/profile #把mysql服務加入系統環境變量:在最后添加下面這一行
export PATH=$PATH:/usr/local/mysql/bin
:wq! #保存退出
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 -u root -p #輸入之前生成的密碼LZrRpp40AG*-回車
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #修改密碼,NEVER表示密碼永不過期
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456' PASSWORD EXPIRE NEVER; #使用WITH mysql_native_password加密
#MySQL 8.0加密方式從mysql_native_password 更改為 caching_sha2_password,mysql8.x之前的客戶端遠程連接可能報錯:authentication plugin caching_sha2
flush privileges; #刷新系統授權表
exit #退出mysql控制臺
4、創建MySQL數據庫、添加用戶并授權
數據庫名稱:www.osyunwei.com
數據庫用戶名:osyunwei.com
數據庫密碼:osyunwei
授權osyunwei.com用戶對www.osyunwei.com具有全部操作權限
繼續在mysql控制臺操作
mysql -u root -p #輸入剛剛修改過的密碼123456,回車
4.1、Create DATABASE IF NOT EXISTS www.osyunwei.com default charset utf8 COLLATE utf8_general_ci; #創建數據庫
4.2、CREATE USER 'osyunwei.com'@'localhost' IDENTIFIED BY 'osyunwei'; #創建用戶
CREATE USER 'osyunwei.com'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'osyunwei'; #加密方式為mysql_native_password
4.3、grant all privileges on www.osyunwei.com.* to 'osyunwei.com'@'localhost'; #授權用戶osyunwei.com對數據庫www.osyunwei.com具有全部操作權限
grant all privileges on www.osyunwei.com.* to 'osyunwei.com'@'127.0.0.1'; #授權用戶
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; #授權root用戶具有全部數據庫本地權限
4.4、MySQL5.7版本后要授權用戶對所有數據庫有SUPER權限,否則上一步對用戶的授權只能連接但無任何操作權限。
grant SUPER on *.* to 'osyunwei.com'@'localhost' ; #授予用戶對所有數據庫有SUPER權限,否則只能連接無任何操作權限。
grant SUPER on *.* to 'osyunwei.com'@'127.0.0.1' ;
flush privileges; #刷新系統授權表
exit #退出mysql控制臺
service mysqld restart #重啟mysql數據庫