0
点赞
收藏
分享

微信扫一扫

MySQL 数据库安装

一、YUM 的安装方式

  • 现在主流使用的 MySQL 5.7.X 和 MySQL 8.0.X 系列

1、配置YUM源并安装

#  MySQL 5.7.X  系列
[root@localhost ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
[root@localhost ~]# yum -y install /usr/local/src/mysql57-community-release-el7-11.noarch.rpm

#  MySQL 8.0.X 系列
[root@localhost ~]# wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
[root@localhost ~]# yum -y install mysql80-community-release-el7-1.noarch.rpm

#####  相同的操作部分   ######
[root@localhost ~]# sed -i "s/gpgcheck=1/gpgcheck=0/" /etc/yum.repos.d/mysql-community.repo
[root@localhost ~]# yum -y install mysql-community-server

2、启动进入数据库

#  MySQL 5.7.X  启动数据库
[root@localhost ~]# service mysqld restart 
#  MySQL 8.0.X  启动数据库
[root@localhost ~]# systemctl start  mysqld.service        

#####  相同的操作部分  #####
[root@localhost ~]# netstat -lntp | grep mysql
tcp6     0    0 :::3306           :::*            LISTEN      2833/mysqld

[root@localhost ~]# grep "password" /var/log/mysqld.log | grep root
2022-02-24T09:41:34.363262Z 1 [Note] A temporary password is generated for root@localhost: cx;!4sKaIMmL

[root@localhost ~]# mysql -u'root' -p'cx;!4sKaIMmL'
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

#  进入数据库第一步就必须更改 root 账号的密码,而且还必须是复杂密码,不坐这一步其他操作都会提醒进行此项操作
#  先临时更改成一个符合要求的密码,稍后更改数据库的密码复杂度要求,再改成一个简单的密码

mysql> alter user 'root'@'localhost' identified by 'TestDB3306###';     
Query OK, 0 rows affected (0.01 sec)

mysql> show variables like 'validate_password%';       #  查看 Mysql 数据库口令规则要求
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

mysql> set global validate_password_policy=0;         #   更改数据库用户口令规则
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 8     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.00 sec)

3、更改密码操作

1)MySQL 5.7.X  更改密码操作

#  更改本地登录密码为简单易记的密码
mysql> alter user 'root'@'localhost' identified by 'mysql3306';  
Query OK, 0 rows affected (0.00 sec)

#  更改远程登录密码为简单易记的密码
mysql> grant all privileges on *.* to root@'%' identified by 'root123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

2)MySQL 8.0.X  更改密码操作

#  更改本地登录密码为简单易记的密码
mysql> alter user 'root'@'localhost' identified by 'mysql3306';
Query OK, 0 rows affected (0.01 sec)

#  更改远程登录密码为简单易记的密码
#  MySQL 8 系列数据库的加密方式和 MySQL5 系列的不一样,所以设置远程登录密码的操作不一样

mysql> alter user 'root'@'%' identified by 'root3306' password expire never;
Query OK, 0 rows affected (0.01 sec)
mysql> alter user 'root'@'%' identified with mysql_native_password by 'root3306;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

二、二进制的安装方式

1、安装依赖包、创建用户账号


 #####  相同的操作部分   #####

 [root@localhost ~]# yum -y install libaio* 
 [root@localhost ~]# groupadd -r mysql
 [root@localhost ~]# useradd -r -g mysql -s /sbin/nologin mysql

2、解压并安装


#  MySQL 5.7.X
[root@localhost ~]# tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@localhost ~]# mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql

#  MySQL 8.0.X
[root@localhost ~]# tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
[root@localhost ~]# mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql

3、编辑配置文件


#####  相同的操作部分   #####

[root@localhost ~]# cp /etc/my.cnf /etc/my.cnf.bak
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
datadir=/usr/local/data
basedir=/usr/local/mysql         
socket=/tmp/mysql.sock

[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/usr/local/mysql/mysql.pid

4、创建相关目录并授权


#####  相同的操作部分   #####

[root@localhost ~]# chown -R mysql /usr/local/mysql
[root@localhost ~]# chmod -R 755 /usr/local/mysql

[root@localhost ~]# mkdir -pv /data/mysql
[root@localhost ~]# chown -R mysql /data/mysql
[root@localhost ~]# chmod -R 775 /data/mysql

[root@localhost ~]# mkdir /var/log/mysql
[root@localhost ~]# chown -R mysql /var/log/mysql

5、初始化数据库


#####  相同的操作部分   #####

##  两种初始话的操作 ( 二选一 )
[root@localhost ~]# cd /usr/local/mysql

#  无密码数据库初始化,第一次无需密码就能够登录 MySQL 
[root@localhost mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize-insecure        

#  一般正常数据库初始化,会生成一个随机密码,由于第一次登录数据库
[root@localhost mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize                     
... ...  [Server] A temporary password is generated for root@localhost: k,Msy,xtu9fN

6、启动登录数据库、更改账户密码


1、 MySQL 5.7.X
[root@localhost mysql]# ./support-files/mysql.server start
[root@localhost mysql]# netstat -lntp | grep 3306
tcp6      0     0 :::3306            :::*            LISTEN       2895/mysqld

[root@localhost ~]# grep 'password' /var/log/mysqld.log

[root@localhost mysql]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysql -uroot -p

mysql> show databases;
   +--------------------+
   | Database           |
   +--------------------+
   | information_schema |              
   | mysql              |
   | performance_schema |
   | sys                |
   +--------------------+

###  MySQL 5.7.X  二进制安装没有复制密码要求 !!!
mysql>  alter user 'root'@'localhost' identified by 'mysql3306';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to root@'%' identified by 'root1234';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

2、MySQL 8.0.X

[root@localhost mysql]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysql -uroot -p

# 同上面 YUM 安装一样,进入数据库第一步必须更改账号密码
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executin this statement.

# 进行更改,发现同上面 YUM安装一样,任然有密码复杂度的要求,同上面操作,待更改复杂度要求后再设置成简单密码
mysql> alter user 'root'@'localhost' identified by 'testdb3306';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

mysql> alter user 'root'@'localhost' identified by 'TestDB3306###';    #  临时设置一个符合要求的复杂密码
Query OK, 0 rows affected (0.01 sec)

#  更改数据库密码复杂度 和 密码长度 (非必须)
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=6;     #  非必须操作 

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> alter user 'root'@'localhost' identified by 'mysql3306';
Query OK, 0 rows affected (0.00 sec)

mysql> alter user 'root'@'%' identified by 'root1234' password expire never;
Query OK, 0 rows affected (0.01 sec)

mysql> alter user 'root'@'%' identified with mysql_native_password by 'root1234';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

7、创建软链接


#####  相同的操作部分   #####

[root@localhost ~]# ln -sv /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# ln -sv /usr/local/mysql/bin/mysql /usr/local/sbin/mysql

[root@localhost ~]# ln -sv /usr/local/mysql/bin/mysqladmin /usr/local/sbin/mysqladmin
[root@localhost ~]# ln -sv /usr/local/mysql/bin/mysqldump /usr/local/sbin/mysqldump
举报

相关推荐

0 条评论