Mysql8.0版二進制安裝(my.cnf文件靈活編寫)


新版本mysql二進制安裝遇到不少坑(慢慢磨合吧)

系統環境:centos7.6   

這里我安裝的是mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz      (官網有各種大小的包,這里我下載的是二進制的包,便於修改配置)

官網下載:https://dev.mysql.com/downloads/mysql/

 

 下載好后,開始安裝:

1,第一步 先卸載可能會影響安裝的包

[root@localhost ~]# rpm -q mysql mysql-server mariadb mariadb-server

未安裝軟件包 mysql

未安裝軟件包 mysql-server

未安裝軟件包 mariadb

未安裝軟件包 mariadb-server

如果出現沒有卸載的包,需全部卸載

2,第二步上傳mysql8.0.21這個包,開始安裝 

#tar xf mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz -C /usr/local/                           //這里解壓到/usr/local下

#cd /usr/local        

#mv mysql-8.0.21-linux-glibc2.17-x86_64-minimal/ mysql                                                //改個名

#useradd -M -s /sbin/nologin mysql                                                                                   //創建個用戶

#chown -R mysql:mysql /usr/local/mysql/                                                                         //給個權限

#/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize                //初始化一下數據庫(初始前先做配置文件,如下步驟)

3,第二步,修改my.conf配置文件

==================================================================

-----這里先對配置文件進行一個說明(適用於實際生成環境下)--------

[mysqld]
# 監聽端口
port=3306
# 安裝目錄
basedir=/usr/local/mysql
# 數據目錄
datadir=/usr/local/mysql/data
# 最大連接數
max_connections = 100
# 默認數據庫引擎
default-storage-engine = InnoDB
# 字符集
character-set-server=utf8
# 錯誤日志
log-error = /usr/local/mysql/log/error.log
# 開啟慢日志
slow_query_log = 1
# 慢查詢日志時間閾值 默認是10S
long-query-time = 30
# 慢查詢日志存放路徑
slow_query_log_file =  /usr/local/mysql/log/show.log
# 記錄那些由於查找了多余1000次而引發的慢查詢
min_examined_row_limit = 1000
# 記錄由Slave所產生的慢查詢
log-slow-slave-statements
# 如果運行的SQL語句沒有使用索引,則將這條SQL語句記錄到慢查詢日志文件中
log-queries-not-using-indexes

--------------------------配置文件是以上內容,保存退出后,開始初始化---------------------------------

# mkdir data
# mkdir log
# touch log/error.log
# chown -R mysql. *
# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
這里生成的密碼等下會用到

# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# service mysqld start
# ss -naltp
# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
# source /etc/profile
# mysql_secure_installation
# mysql -uroot -p 

==================================================================================

這里我沒有用到以上配置修改,只針對此次演示做了簡單配置,如下:

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
#
!includedir /etc/my.cnf.d
 
4,第四步,做啟動文件
 
#cd /usr/local/mysql/support-files
#cp mysql.server /etc/init.d/mysqld
#chmod +x /etc/init.d/mysqld
#chkconfig --add mysqld
#ln -s /usr/local/mysql/bin/* /usr/local/bin/
#systemctl start mysqld                                                         //啟動mysql
 
 
 
5,第五步,修改密碼(注:這里我遇到一個問題,修改密碼時總有報錯,之后上網查后,是mysql8.0變得更加”嚴謹“了!密碼要復雜的,不然不能修改!)

 

(我是為了測試,這里我沒再往下修改密碼了,我選擇放空密碼,但Mysqladmin不能直接放空密碼,沒辦法,新版本嚴謹性還是很強的!)

6,第六步,其實到第五步,mysql的安裝就已經完成了,這里我是不服“嚴謹”,選擇跳過驗證,進入mysql將密碼放空!
[root@localhost ~]# systemctl stop mysqld

[root@localhost ~]# ps aux | grep mysqld

#mysqld_safe --skip-grant-tables &

#mysql                                                                              /   /   進入mysql

修改密碼

 

mysql> show databases;                      //查詢庫
mysql> use mysql                                 //進入庫
mysql> show tables;                             //查詢表
mysql> desc user;                                
mysql> select user,authentication_string from user;                    //查看用戶詳細表信息
mysql> update user set authentication_string=PASSWORD('123456') where user='root';                       //修改密碼    
mysql> flush privileges;                                                                                                //生效
mysql> exit                      

這里又遇到一個尷尬的問題(也是我發現新版本的變態地方)

當我按以上步驟走,到修改密碼這一步,出現報錯,提示說一個一個輸入??????

 

 

(這里我以為我語法有問題,另開了一台以前mysql版本5.6試了一下沒問題!!!!!我靠??)

之后找了官方文檔,才明白怎么回事,mysql8.0新版本sql語句有一點點的變化,簡單說就是兩種操作不能同時一起執行,需分開一個一個執行???(具體可以上官網查看官方文檔)

 我只能改進命令(將root登陸密碼改為空)如圖:

#update user set authentication_string = '' where user = 'root';

退出mysql后,再用空密碼進一次mysql

然后執行以下操作:

# ALTER USER USER() IDENTIFIED BY 'new password';                       ##這里就可以添加你需要的密碼......了   

 

 此時再就沒有報修改密碼錯誤了!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM