1.卸載Linux系統上自帶的mysql插件(old版本)
1、先檢查要安裝的Linux服務器cglib版本號,命令 strings /lib64/libc.so.6 | grep GLIBC ,查看其是否有相應cglib版本,如下:
只有在系統列表中的cglib才可以安裝,以免對不上還需要升級系統cglib
2、查找mysql相關安裝:
rpm -qa|grep -i mysql
可能會出現以下的一個或多個,沒有更好,說明你的系統很干凈,但是以防萬一,不管怎樣下面的操作還是檢查一變
perl-DBD-MySQL-4.013-3.el6.x86_64
mysql-libs-5.1.71-1.el6.x86_64
qt-mysql-4.6.2-26.el6_4.x86_64
mysql-5.1.71-1.el6.x86_64
mysql-server-5.1.71-1.el6.x86_64
mysql-community-common-5.7.23-1.el7.x86_64
如果出現了上面的一個或多個,也不用擔心,使用卸載命令,有幾個干掉幾個!
卸載命令:rpm –ev {包名},如:
rpm -ev mysql-community-common-5.7.23-1.el7.x86_64
查找老版本mysql相關的安裝目錄命令:
find / -name mysql
若查找到相關目錄使用命令:rm –rf {目錄名}
最后使用命令:rpm -qa|grep -i mysql,重新檢查一遍系統中是否安裝mysql。
如果是centos7,那么默認會安裝一個mysql的分支產品mariadb,必須先卸載此分支產品
rpm -qa | grep mariadb
拷貝找到的列表,一個個卸載,如
rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64
2.安裝包處理
新建software目錄,切換到software目錄,下載到該目錄:
mkdir /root/software
cd/root/software
下載:(600M左右,下載需要點時間)
(mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz)
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
注:問題?
-bash: wget: command not found
然后在執行就可以了,或者可以去官網下載。
官網下載
地址:
https://dev.mysql.com/downloads/mysql/
或者直接找歷史版本:https://downloads.mysql.com/archives/community/
國內鏡像: http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/
(ps:最簡單的是Windows的安裝版,選擇歷史檔案左側的installer就可以選擇下載:https://downloads.mysql.com/archives/installer/)
下載完
解壓到當前目錄:
tar -xzvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
mysql主目錄處理
在software目錄下移動文件到/usr/local/mysql:
mv mysql-5.7.23-linux-glibc2.12-x86_64/usr/local/mysql
cd/usr/local/mysql
mkdir data
主目錄權限處理
查看組和用戶情況
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
若存在,則刪除原mysql用戶:userdel -r mysql,會刪除其對應的組和用戶。
在查看就會發現沒有,說明你已經刪掉了
創建mysql組和mysql用戶
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql
創建配置文件及相關目錄
修改配置文件:/etc/my.cnf,配置不對的話,后面初始化不全,會拿不到默認密碼。
vim /etc/my.cnf
修改內容:
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
socket=/tmp/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/tmp/mysqld/mysqld.pid
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1
max_connections=1000
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
:wq! 保存退出。
創建文件/tmp/mysql.sock:設置用戶組及用戶,授權
cd /tmp
touch mysql.sock
chown mysql:mysql mysql.sock
chmod 755 mysql.sock
創建文件/tmp/mysqld/mysqld.pid:
mkdir mysqld
cd mysqld
touch mysqld.pid
cd ..
chown -R mysql:mysql mysqld
cd mysqld
chmod 755 mysqld.pid
創建文件/var/log/mysqld.log:
touch /var/log/mysqld.log
chown -R mysql:mysql /var/log
cd log
chmod 755 mysqld.log
配置文件其他參數,僅供參考:https://blog.csdn.net/u011823494/article/details/74548642
安裝和初始化數據庫
進入bin目錄:
cd /usr/local/mysql/bin/
初始化數據庫:
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data
注:
這時會出現錯誤
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解決方案:
yum install -y libaio
如果是內網不能上網的環境,那么就得手動安裝 numactl-2.0.9-2.el6.x86_64.rpm 和 libaio-0.3.109-13.el7.x86_64.rpm 這兩個rpm包
rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm
rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
然后在執行./mysqld --initialize --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data
安全啟動:
./mysqld_safe --user=mysql &
是否啟動成功,可以通過查看mysql進程,ps -ef | grep mysql
默認密碼在mysqld.log日志里, 找到后保存到安全的地方:
cat /var/log/mysqld.log
其中root@localhost: 后面的就是默認密碼,后面登錄用.(如果找不到可能默認是空,登錄時密碼直接回車,否則可能安裝有問題)
進入bin目錄:
cd /usr/local/mysql/bin/
登錄mysql:
./mysql -u root -p
拷貝或者輸入mysqld.log中獲得的默認密碼,即可進入mysql命令客戶端。
但是,若輸入相關命令,則會提示你修改用戶密碼(注意后面一定要加;)。
show databases;
假設密碼修改為xh2018
mysql> set password=password("xh2018");
設置遠程登錄權限
mysql>grant all privileges on *.* to 'root'@'%' identified by 'xh2018';
立即生效:
mysql> flush privileges;
退出quit 或者 exit;
mysql> quit;
至此,mysql安裝流程已結束,后續如果通過遠程ip進行root用戶授權,還需要到mysql庫下的user表中把%對應的root用戶所有權限改為Y,否則遠程授權會失敗,參考:https://blog.csdn.net/nininininiabc222/article/details/80090384。
開機服務啟動設置:
把support-files/mysql.server 拷貝為/etc/init.d/mysql:
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
查看是否拷貝成功
查看mysql服務是否在服務配置中
chkconfig --list mysql
若沒有,則把mysql注冊為開機啟動的服務,然后在進行查看
chkconfig --add mysql
chkconfig --list mysql
啟動 或 停止
service mysql start
service mysql stop
創建快捷方式:
服務啟動后,直接運行mysql -u root -p即可登錄,不需要進入到對應的目錄。
ln -s /usr/local/mysql/bin/mysql /usr/bin
打開3306防火牆