一. 下載
https://dev.mysql.com/downloads/mysql/
選擇需要的版本下載,我下的圖中所示版本,linux系統是centos
二. 安裝
用ftp工具傳到linux環境上
1.解壓縮tar文件
tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
2.復制mysql目錄到系統的本地軟件目錄:
cp mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/mysql
3 添加系統的mysql組和mysql用戶
groupadd mysql
useradd -r -g mysql mysql
4.初始化mysql配置表:
cd /usr/local/mysql
chown -R mysql:mysql ./ //修改當前目錄為mysql用戶
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初始化數據庫
這個命令和mysql5.7之前的命令不一樣了,之前命令是:bin/mysql_install_db --user=mysql,但是之后的版本已經被mysqld --initialize替代
如果出現下面報錯:bin/mysqld: error while loading shared libraries: libnuma.so.1: 。。
Centos就yum -y install numactl
就可以解決這個問題了.
ubuntu的就sudo apt-get install numactl
就可以解決這個問題了
再次執行之后成功后出現如下的提示:
2020-03-26T05:59:16.069981Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.19) initializing of server in progress as process 31088
2020-03-26T05:59:23.525222Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rq%K-:pqm3Z!
2020-03-26T05:59:29.179164Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.19) initializing of server has completed
【注意】:
mysql5.7版本之上會初始化話一個密碼,在這里要記住這個初始化密碼,在下面初次登錄會用上。
5.復制配置文件:
[root@rhel5-32 mysql]# cp support-files/my-default.cnf /etc/my.cnf
【注意】:如果沒有my-default.cnf就手動創建一個文件,並且配置權限
vi my-default.cnf
chmod 777 ./my-default.cnf
2
重新執行上面的文件,然后修改/etc/my.cnf文件:
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /usr/local/mysql/tmp/mysql.sock
#必填項
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
【注意】:如果/usr/local/mysql/目錄下沒有tmp文件,手動創建,並且配置權限:
mkdir tmp
chmod 777 ./tmp
【注意】 support-files/mysql.server 這個文件就是可以執行的 start stop restart
3.加入開機自啟項:
1.將{mysql}/ support-files/mysql.server 拷貝為/etc/init.d/mysql並設置運行權限,這樣就可以使用service mysql命令啟動/停止服務
#cp mysql.server /etc/init.d/mysql
#chmod +x /etc/init.d/mysql
2.注冊啟動服務:
#chkconfig --add mysql
3.查看是否添加成功
[root@rhel5-32 mysql]# chkconfig --list mysql
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4.開啟mysql服務:
serivce mysql start
配置環境變量
vi /etc/profile
文件中寫入:
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
保存退出之后,讓文件生效source /etc/profile
登錄並修改密碼
mysql -uroot -prq%K-:pqm3Z! -h 127.0.0.1 //后面是系統生成的密碼
修改root密碼
alter user 'root'@'localhost' identified by '123';
navcat遠程連接mysql數據庫:
mysql -u root -p
mysql;use mysql;
mysql;select 'host' from user where user='root';
mysql;update user set host = '%' where user ='root';
mysql;flush privileges;
mysql;select 'host' from user where user='root';
第一句是以權限用戶root登錄
第二句:選擇mysql庫
第三句:查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱)
第四句:修改host值(以通配符%的內容增加主機/IP地址),當然也可以直接增加IP地址
第五句:刷新MySQL的系統權限相關表
第六句:再重新查看user表時,有修改。。
重起mysql服務即可完成。
Navicat連接MySQL8.0版本時 建議升級連接客戶端問題的解決
錯誤:Client does not support authentication protocol requested by server; consider upgrading MySQL client
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '831015';
FLUSH PRIVILEGES;
root是用戶名,localhost是ip地址127.0.0.1都是特指本機,mysql_native_password是舊的密碼驗證機制,
831015是密碼,最后別忘了分號;