## 安裝mysql(安裝方式:用dnf)
```
dnf --installroot=/alidata/server/mysql --releasever=/ install mysql -y
```
## 安裝mysql(安裝方式:下載編譯)
#### 1. 下載mysql
下載mysql,官網地址:https://www.mysql.com/
`axel -n 10 https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.25.tar.gz`



#### 2. 解壓壓縮包
`tar -zxvf mysql-8.0.25.tar.gz`
#### 3. 安裝編譯需要的軟件包
安裝PowerTools倉庫
~~~
yum install dnf-plugins-core
dnf config-manager --set-enabled powertools
~~~
安裝rpcgen
```
yum --enablerepo=powertools install rpcgen
```
安裝其他依賴包
`yum -y install make bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools libtirpc-devel openssl-devel`
#### 4. 編譯配置
重新cmake需要刪除CMakeCache.txt文件 (如果遇到??No mysys timer support detected! 這個錯誤,選擇穩定版本的二進制文件或者降版本,再編譯安裝)
沒有cmake用yum安裝
```
yum install cmake -y
yum install gcc-toolset-10-gcc gcc-toolset-10-gcc-c++ gcc-toolset-10-binutils
dnf install gcc-toolset-10-annobin
```
mysql的配置
~~~
cd mysql-8.0.25
mkdir build
cd build
cmake ..\
-DCMAKE_INSTALL_PREFIX=/alidata/server/mysql \
-DMYSQL_DATADIR=/alidata/server/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/alidata/server/boost \
~~~
(注:如果boost已經安裝過在配置里面去掉-DDOWNLOAD_BOOST=1,這個配置是用來下載boost。另外配置boost的安裝目錄 -DWITH_BOOST。其他的按需要配置即可。)

#### 5. 編譯安裝
`make && make install`

## mysql的配置
#### 6. 創建mysql用戶和組
`groupadd -r mysql && adduser -r -g mysql -s /bin/false -M mysql`
#### 7. 修改mysql的權限
`chown -R mysql:mysql /alidata/server/mysql`
#### 8. 數據庫初始化
~~~
cd /alidata/server/mysql/bin
./mysqld --initialize --basedir=/alidata/server/mysql --datadir=/alidata/server/mysql/data --user=mysql --console
~~~

#### 9. 加入到系統服務
~~~
cp /alidata/server/mysql/support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
~~~
#### 10. 配置my.cnf
`vim /etc/my.cnf`
修改對應的配置
~~~
[mysqld]
datadir=/alidata/server/mysql/data
socket=/var/lib/mysql/mysql.sock
max_connections=10000
max_connect_errors=10
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/alidata/server/mysql/log/mariadb.log
pid-file=/alidata/server/mysql/log/run/mariadb.pid
~~~
保存文件后建立mysql.sock的存放目錄,并分配給mysql用戶和組
~~~
mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
~~~
創建日志文件mariadb.log
~~~
touch /alidata/server/mysql/log/mariadb.log
cd /alidata/server/mysql/log
chown -R mysql:mysql mariadb.log
~~~
#### 11. 啟動mysql
`service mysql start`
如果啟動有問題可以查看mariadb.log日志里面的[ERROR]部分。
#### 12. 配置環境變量
`vim /etc/profile`
把mysql的bin目錄加入PATH中
`export PATH=$PATH:/alidata/server/mysql/bin`
保存后執行source命令使配置立即生效
`source /etc/profile`
#### 13. 修改初始密碼,mysql登錄(密碼就是mysqld --initialize初始化時候console里面的臨時密碼)
~~~
mysql -uroot -p
~~~
登錄后修改密碼
alter user user() identified by "你的新密碼";
修改用戶的MySQL的密碼認證插件是“mysql_native_password” (這步可以省略)
```
#alter user 'root'@'localhost' identified with mysql_native_password by '密碼';
alter user 'root'@'localhost' identified by '密碼';
flush privileges;
```
查詢用戶的密碼插件信息
```
use mysql
select plugin,authentication_string,host,user from user;
```
允許遠程訪問
~~~
my.cnf添加下面參數重啟數據庫
default_authentication_plugin=mysql_native_password
創建用戶
create user 'root'@'%' identified by 'mysql的密碼';
grant all on *.* to 'root'@'%';
flush privileges;
~~~
到這為止,lnmp的環境就配置完成了。