https://dev.mysql.com/downloads/mysql/ 官網的社區版的下載地址
最終的下載地址是https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
直接下載的話比較慢,所以我用迅雷下載到了本地,然后再用終端傳到CentOS
首先,檢查一下下載的文件的完整性,從終端進到下載的目錄,然后使用命令計算md5值
md5sum mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
計算結果顯示與下載列表里面的md5值一致。
在/usr下新建mysql文件夾
cd /usr
mkdir mysql
cd mysql
接下來用下面命令傳到CentOS
scp -P 22 /Users/florentino/Downloads/mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar root@192.168.31.48:/usr/mysql
這里的ip地址和路徑按需配置,之后輸入密碼,正確的話就開始傳輸,接著解壓文件
tar -xvf mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
mysql與自帶的mariadb有沖突,先卸載mariadb
rpm -qa | grep mariadb 列出系統上的組件
我這里是顯示的如下版本
mariadb-libs-5.5.56-2.el7.x86_64
卸載之
[root@Develop mysql]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
再列出系統上的組件版本,已經不存在了
接下來,要安裝四個rpm文件,依次是
rpm -i?mysql-community-common-8.0.13-1.el7.x86_64.rpm
rpm -i mysql-community-libs-8.0.13-1.el7.x86_64.rpm
rpm -i?mysql-community-client-8.0.13-1.el7.x86_64.rpm
rpm -i mysql-community-server-8.0.13-1.el7.x86_64.rpm
我在安裝server的時候報錯了,缺少依賴,分別安裝依賴
yum install perl?
yum install net-tools
yum install perl-JSON.noarch
yum install "perl(Data::Dumper)"
再裝server的rpm就行了
安裝完成,可以先修改一下/etc/my.cnf配置,一般來說會修改一下mysql的data的保存路徑,我本地的系統在/home下掛有大硬盤,所以在配置文件里修改datadir=/home/data/mysql。
先在/home下新建目錄data,cd /home,mkdir data,
復制原路徑的data 數據
cp -R ?/var/lib/mysql? ? ? /home/data/mysql
chow -Rf mysql:mysql /home/data/mysql
chmod -R 755 /home/data/mysql?
關閉 SELinux,打開 /etc/selinux/config,把 SELINUX=enforcing 改為 SELINUX=disabled 后保存退出
setenforce 0 #使配置立即生效
運行,[root@Develop mysql]# service mysqld start
Redirecting to /bin/systemctl startmysqld.service
新版的mysql在安裝的時候會生成一個臨時的密碼,獲取方式是
cat /var/log/mysqld.log|grep -n password
接著登陸mysql
mysql -u root -p
輸入剛才查看到的密碼,登陸成功,然后修改root密碼
alter user 'root'@'localhost'IDENTIFIED BY 'MyNewPass';
接著授權遠程登錄,mysql8.0無法給用戶授權或提示You are not allowed to create a user with GRANT,5.7那一套辦法已經不行了,跟我來。
提示意思是不能用grant創建用戶,mysql8.0以前的版本可以使用grant在授權的時候隱式的創建用戶,8.0以后已經不支持,所以必須先創建用戶,然后再授權,命令如下:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'Hadoop3!';
Query OK, 0 rows affected (0.04 sec)
mysql> grant all privileges on *.* to 'root'@'%';
Query OK, 0 rows affected (0.03 sec)
另外,如果遠程連接的時候報plugin caching_sha2_password could not be loaded這個錯誤,可以嘗試修改密碼加密插件:
mysql> alter user 'root'@'%' identified with mysql_native_password by 'Hadoop3!';
systemctl restart mysqld
防火墻打開3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重啟防火墻
firewall-cmd --reload
///修改默認字符集
character-set-server=utf8
init_connect='SET NAMES utf-8'
sql_mode='NO_ENGINE_SUBSTITUTION'
max_allowed_packet=1024M
在/etc/my.cnf下面加上這三個,然后重啟mysql服務
有時候新聞過長,導致內容過大,要設置
set global max_allowed_packet=524288000;
直接在navicat里面運行查詢就行