1. 程式人生 > >簡單在ctenos7上安裝mysql-8.0.11

簡單在ctenos7上安裝mysql-8.0.11

mkdir -p /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/run/mariadb
mkdir -p /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/log/mariadb
touch /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/log/mariadb/mariadb.log
touch /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/run/mariadb/mariadb.pid


修改所有者
chown -R mysql:mysql /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/


初始化
./bin/mysqld --initialize --user=mysql --datadir=/home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/data/
 
 #MySQL SSL RSA設定
 bin/mysql_ssl_rsa_setup --datadir /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/data/
 
 #自啟動
  cp support-files/mysql.server /etc/init.d/mysql.server
 使用自動生成的 密碼
 
 #修改 /etc/my.cnf 檔案  mysql --help|grep 'my.cnf'  命令可以看 :/etc/my.cnf, /etc/mysql/my.cnf, /usr/local/etc/my.cnf, ~/.my.cnf 這些就是mysql預設會搜尋my.cnf的目錄,順序排前的優先。
 可以簡單配置 data 目錄 或者參考 詳細設定配置
 
 #啟動
 mysqld --user=root &
 
 #修改密碼
 mysql>alter user 'root'@'localhost' identified by "DoctorAI#1234";
 
 
 #設定遠端等陸(如果不修改就會 【mysql navicat 報錯1130】)
 mysql>use mysql
 mysql>update user set host='%' where user='root';
 mysql>flush privileges;
 
 
 #mysql 8 修改 加密規則 (如果不修改就會 【mysql navicat報錯 2059】)
 mysql>ALTER USER 'root'@'%' IDENTIFIED BY 'DoctorAI#1234' PASSWORD EXPIRE NEVER;
 mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'DoctorAI#1234'; #更新一下使用者的密碼 

 mysql>FLUSH PRIVILEGES; #重新整理許可權

 先來解釋一下為什麼會報這個錯,在mysql8之前的版本使用的密碼加密規則是mysql_native_password,但是在mysql8則是caching_sha2_password。
  解決方案有很多,我是建立了一個新使用者,並指定加密規則為:mysql_native_password,這樣的話,僅需要執行以下語句即可:
create user 'your username'@'%' identified with mysql_native_password by 'your password'
  也可以直接修改my配置檔案,將預設密碼規則設定為mysql_native_password,重新整理許可權並重置root密碼即可。
default_authentication_plugin=mysql_native_password
  如果想用新的caching_sha2_password也是可以的,java的話mysql已經推出了新的mysql-connector-java包,引入後,驅動使用com.mysql.cj.jdbc.driver即可,這個方案本地試了。沒有問題。

 
開放3306埠
firewall -cmd --permanent --add-prot=3306/tcp
重啟防火牆
firewall -cmd --reload


或者關閉防火牆
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
firewall-cmd --state #檢視預設防火牆狀態


#關閉
./mysqld --user=root stop
#開啟 通過在命令後面加上--user=root 進行強制使用root賬號啟動。這樣是最快的。
mysqld --user=root &




匯入資料庫的表結構


--刪除資料庫
mysql> drop database test; 


--建立新的資料庫   
mysql> create database test;    
  
--進入該資料庫   
mysql> use test;    
  
--匯入資料
mysql> source /home/xx.sql


參考:https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html