環境準備
Linux發行版本:Centos7
Mysql數據庫版本:mysql-5.7.24
數據庫下載
方法一:官網下載地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
下載完成後使用ftp工具上傳到服務器。
方法二:直接通過wget命令在線下載:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
下載完成後:
[admin@localhost apps]$ ls -lrt
total 629816
-rw-rw-r--. 1 admin admin 644930593 Dec 16 11:24 mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
數據庫安裝
- 解壓數據庫文件
[admin@localhost apps]$ tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
[admin@localhost apps]$ ls -lrt
total 629816
-rw-rw-r--. 1 admin admin 644930593 Dec 16 11:24 mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
drwxrwxr-x. 9 admin admin 129 Dec 16 14:16 mysql-5.7.24-linux-glibc2.12-x86_64
- 重命名
[admin@localhost apps]$ mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
[admin@localhost apps]$ ls -lrt
total 629816
-rw-rw-r--. 1 admin admin 644930593 Dec 16 11:24 mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
drwxrwxr-x. 9 admin admin 129 Dec 16 14:16 mysql
- 複製到/usr/local/目錄
[admin@localhost apps]$ sudo cp -r mysql /usr/local/
[sudo] password for admin:
- 目錄結構如下
[admin@localhost apps]$ cd /usr/local/mysql
[admin@localhost mysql]$ ls -lrt
total 36
drwxr-xr-x. 2 root root 4096 Dec 16 14:20 bin
drwxr-xr-x. 5 root root 230 Dec 16 14:20 lib
drwxr-xr-x. 3 root root 4096 Dec 16 14:20 include
drwxr-xr-x. 28 root root 4096 Dec 16 14:20 share
drwxr-xr-x. 2 root root 55 Dec 16 14:20 docs
-rw-r--r--. 1 root root 2478 Dec 16 14:20 README
drwxr-xr-x. 4 root root 30 Dec 16 14:20 man
-rw-r--r--. 1 root root 17987 Dec 16 14:20 COPYING
drwxr-xr-x. 2 root root 90 Dec 16 14:20 support-files
- 添加mysql用戶組和mysql用戶
[admin@localhost mysql]$ sudo groupadd mysql # 創建用戶組
[sudo] password for admin:
[admin@localhost mysql]$ sudo useradd -r -g mysql -s /bin/false mysql # 創建用戶
-s /bin/false參數指定mysql用戶僅擁有所有權,而沒有登陸權限
- 修改mysql目錄權限
[admin@localhost mysql]$ cd /usr/local/mysql/
[admin@localhost mysql]$ sudo chown -R mysql:mysql ./
- 配置Mysql服務
將mysql/support-files下的mysql.server 複製到 /etc/init.d/下並自定義爲mysql:
[admin@localhost support-files]$ sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
打開/etc/init.d/mysql文件
[admin@localhost support-files]$ sudo vim /etc/init.d/mysql
查找:
basedir=
datadir=
修改爲:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
- 配置mysql的配置文件
在其他版本的mysql 裏面 support-files下有默認的配置文件,而5.7.24這個版本沒有,需要自己準備,下面提供一份簡單基本配置
在/etc/ 下新建my.cnf ,有些可能會提示已經存在,因爲默認裝的數據庫配置文件也在,直接改名備份
[admin@localhost etc]$ pwd
/etc
[admin@localhost etc]$ ls -lrt my*
-rw-r--r--. 1 root root 570 Aug 16 2018 my.cnf
my.cnf.d:
total 4
-rw-r--r--. 1 root root 232 Apr 20 2018 mysql-clients.cnf
[admin@localhost etc]$ sudo mv my.cnf my.cnf.bak
新建:
[admin@localhost etc]$ sudo vim my.cnf
內容爲:
[admin@localhost etc]$ sudo vim my.cnf
[admin@localhost etc]$ cat my.cnf
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
port = 3306
default-character-set=utf8
[mysqld]
# 一般配置選項
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character-set-server=utf8
default_storage_engine = InnoDB
#設置表名不區分大小寫
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
- 初始化數據庫
新建目錄:data
[admin@localhost mysql]$ cd /usr/local/mysql
[admin@localhost mysql]$ sudo mkdir data
[sudo] password for admin:
[admin@localhost mysql]$ sudo chown -R mysql:mysql ./data
執行初始化:
[admin@localhost mysql]$ cd /usr/local/mysql/bin
[admin@localhost bin]$ sudo ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
如果遇到錯誤:./mysqld: error while loading shared libraries: libnuma.so.1:
cannot open shared object file: No such file or directory
則執行如下安裝命令:yum -y install numactl.x86_64
如果遇到錯誤:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
則執行如下安裝命令:yum -y install libaio
安裝完成後重新執行初始化命令
初始化成功後會生成默認的密碼在執行記錄中,注意複製出來:
2019-12-16T07:09:20.464295Z 1 [Note] A temporary password is generated for root@localhost: e>evo9Te6Qag
- 啓動mysql服務
[admin@localhost bin]$ sudo service mysql start
[sudo] password for admin:
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
SUCCESS!
啓動成功!
- 登錄及修改密碼
登錄
[admin@localhost bin]$ ./mysql -uroot -p # 回車後輸入之前複製的默認密碼:e>evo9Te6Qag
Enter password:
修改密碼:
mysql> alter user 'root'@'localhost' identified by '自定義新密碼';
刷新權限:
mysql> flush privileges;
- 開放端口(可選)
開啓端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重載防火牆:
firewall-cmd --reload
- 設置開機啓動(可選)
查看自啓服務列表:
chkconfig --list
添加mysql服務到自啓服務:
chkconfig --add mysql
設置自啓:
chkconfig mysql on
- 設置環境變量(可選)
爲了不用在mysql/bin目錄下才能連接mysql,將mysql/bin目錄設置到環境變量中
[admin@localhost bin]$ sudo vim /etc/profile
添加內容爲:
# mysql environment
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
更新環境變量:
[admin@localhost bin]$ source /etc/profile
安裝完成,完美!