linux下的 mysql 5.7 3种安装方式

mysql安装有三种方式,包括二进制包安装、RPM包安装、源码安装。一般是前两种比较多。

mysql下载地址:https://dev.mysql.com/downloads/mysql/

方式1: MySQL通用版安装方式

选择自己的系统:
linux下的 mysql 5.7 3种安装方式_第1张图片
generic是通用版本
linux下的 mysql 5.7 3种安装方式_第2张图片

linux下的 mysql 5.7 3种安装方式_第3张图片

准备工作,之前装过msyql和mariadb的一定清理干净,要不然报错很多:

关闭防火墙
关闭SELinux
如果之前有mariadb,则需要先卸载,并删除对应的配置与数据:

systemctl stop mariadb
rm-rf /etc/my.cnf
rm -rf /var/lib/mysql/*
rpm -e --nodeps mariadb mariadb-server mariadb-devel

将下载好的tar包扔到服务器上,解压到指定位置并改名

tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
cd /usr/local/
mv mysql-5.7.30-linux-glibc2.12-x86_64/ mysql

检查并创建用户和用户组

cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql  //-r 创建一个系统账户 -g 新账户主组的名称或ID

创建data文件夹(某个版本之后就不需要data文件夹了)

mkdir /usr/local/mysql/data

授权目录和用户

cd /usr/local/ 
chown -R mysql:mysql mysql/
chmod -R 755 mysql/

安装并初始化

/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql         //datadir是安装路径     basedir就是根目录

linux下的 mysql 5.7 3种安装方式_第4张图片

生成mysql密匙对

[root@test mysql]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data/mysql/       //生成密钥对
Generating a 2048 bit RSA private key
................................................................................................+++
........................................................+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
..............+++
............................+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
.........................................+++
.........................+++
writing new private key to 'client-key.pem'
-----

复制启动脚本到资源目录

cd /usr/local/mysql/
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

增加mysqld服务控制脚本执行权限

chmod +x /etc/rc.d/init.d/mysqld

将mysqld服务加入到系统服务

chkconfig --add mysqld

检查mysqld服务是否已经生效

[root@test mysql]# chkconfig --list mysqld

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

mysqld         	0:关	1:关	2:开	3:开	4:开	5:开	6:关

启动mysql

[root@test mysql]# service mysqld start      //启动时候报错
Starting MySQL.2020-06-23T14:01:14.622176Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
 ERROR! The server quit without updating PID file (/var/lib/mysql/test.pid).

这里会报错,原因是没有mariadb和mariadb.log

mkdir -p /var/log/mariadb
touch /var/log/mariadb/mariadb.log

重新启动又报错;

[root@test mysql]# service mysqld start
Starting MySQL.2020-06-23T14:04:37.054719Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
 ERROR! The server quit without updating PID file (/var/lib/mysql/test.pid).

我的改错方法是:将文件换了个名字

 mv /etc/my.cnf /etc/my.cnf.bak

再次启动成功:

[root@test mysql]# service mysqld start
Starting MySQL.Logging to '/usr/local/mysql/data/test.err'.
 SUCCESS! 

创建软连接,启动
启动密码就是最后自动生成的密码

[root@test mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin/
[root@test mysql]# service mysqld start           
Starting MySQL SUCCESS! 
[root@test mysql]# 2020-06-23T14:08:15.731149Z mysqld_safe A mysqld process already exists

[root@test mysql]# mysql -uroot -p')Termc0Er5Yo'     //输入之前的密码直接登录
mysql> set password=password('123456');               //修改密码


方式2:mysql YUM安装方式

先检查系统是否装有mysql

rpm -qa | grep mysql

下载mysql的repo源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

安装 mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装MySQL

yum install mysql-server

重置MySQL密码

[root@test ~]# mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)      
//报错了:原因是/var/lib/mysql的访问权限问题。       
chown root /var/lib/mysql/

重启MySQL服务

service mysqld restart

重新登录:

[root@test ~]# mysql -u root
。 。 。 。
mysql> use mysql;
mysql> update user set password=password('123456') where user='root';   //修改root密码
mysql> exit;

重启MySQL服务

service mysqld restart

验证登录,修改密码成功

[root@test ~]# mysql -uroot -p
Enter password:                       //输入之前设置的密码“123456” 登录成功


方式3: mysql红帽企业版安装

红帽企业版与上边通用版下载方式一样,把下好的包扔到服务器上。
linux下的 mysql 5.7 3种安装方式_第5张图片
安装MySQL服务

[root@test ~]# mkdir mysql
[root@test ~]# tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar -C mysql
[root@test ~]# cd mysql
[root@test ~]# yum -y install mysql-community*

启动服务

[root@test mysql]# systemctl start mysqld           //第一次启动,需要初始化数据,会比较慢
[root@test mysql]# systemctl status mysqld       //查看状态
[root@test mysql]# systemctl enable mysqld      //开机自启动

配置MySQL管理员密码(默认数据库管理员账户为root)
第一次启动时,mysql会自动为root账户配置随机密码,我们需要通过日志查看该密码

[root@test mysql]# grep password /var/log/mysqld.log        //下边提示的有密码
2020-06-23T13:00:41.542169Z 1 [Note] A temporary password is generated for root@localhost: e8iz#egGN;kh
[root@test mysql]# mysql -uroot -p'e8iz#egGN;kh'          //输入自己对应的密码
mysql> show databases;           //执行命令报错了
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
//注意:用该密码登录到服务端后,必须马上修改密码,不然会报上面的错误
策略参数 描述
validate_password_policy 0 或者 LOW 长度
validate_password_policy 1 或者 MEDIUM(默认) 长度;数字、大写、小写,特殊符号
validate_password_policy 2 或者 STRONG 长度;数字、大写小写,特殊符号;字典文件
mysql>set global validate_password_policy=0;       //只验证长度
mysql>set global validate_password_length=6;      //修改密码长度,默认值是8个字符
mysql>alter user user() identified by "123456";   //修改登陆密码
mysql>show databases;                            //修改密码后,可以执行数据库命令了!

永久设置:

vim /etc/my.cnf                                    //修改配置添加如下内容
[mysqld]
validate_password_policy=0
validate_password_length=6

你可能感兴趣的:(MySQL)