linux下安装mysql5.7,实测成功

1、下载MySQL包

1)官网下载(可忽略)

这里选择linux通用版本,MySQL5.7.28--64位

 

 

 

将压缩包通过ftp或其他方式传送至服务器上

2)yum直接下载

[root@A11 home]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 

 

2、环境配置

1)查看是否已经安装了MySQL

[root@A11 ~]# rpm -qa|grep mysql

如果有进行强行卸载:# rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64

2)查看是否安装了mariadb

[root@A11 ~]# rpm -qa|grep mariadb

mariadb-libs-5.5.65-1.el7.x86_64

如果有进行强行卸载:[root@A11 ~]# rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64

3、安装MySQL

1)将MySQL压缩包移动到/data目录下,并解压

[root@A11 home]# mkdir -p /data/software

[root@A11 home]# ls

mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

[root@A11 home]# mv mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz /data/software/

[root@A11 home]# cd /data/software/

[root@A11 software]# ls

mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

[root@A11 software]# tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 

。。。。。。

2)解压后重命名,并移动到/usr/local目录下

[root@A11 software]# ls

mysql-5.7.28-linux-glibc2.12-x86_64  mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

[root@A11 software]# mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28

[root@A11 software]# mv mysql-5.7.28 /usr/local

[root@A11 software]# ls /usr/local

bin  etc  games  include  lib  lib64  libexec  mysql-5.7.28  sbin  share  src

3)检查MySQL组是否存在,没有则创建

[root@A11 software]# cat /etc/group|grep mysql

[root@A11 software]# groupadd mysql

[root@A11 software]# useradd -r -g mysql mysql  #useradd -r参数表示mysql用户是系统用户,不可用于登录系统

[root@A11 software]# cat /etc/group|grep mysql

mysql:x:1000:

4)创建data目录,用来存放数据库,并把MySQL包的所有者和所属组修改为mysql

[root@A11 local]# cd /usr/local/mysql-5.7.28/

[root@A11 mysql-5.7.28]# ls

bin  docs  include  lib  LICENSE  man  README  share  support-files

[root@A11 mysql-5.7.28]# mkdir data

[root@A11 mysql-5.7.28]# ll

drwxr-xr-x  2 root root    4096 2月  15 23:03 bin

drwxr-xr-x  2 root root      6 2月  15 23:08 data

。。。。。。

[root@A11 mysql-5.7.28]# chown -R mysql.mysql /usr/local/mysql-5.7.28  #将/usr/local/mysql-5.7.28的所有者及所属组改为mysql

[root@A11 mysql-5.7.28]# ll

drwxr-xr-x  2 mysql mysql  4096 2月  15 23:03 bin

drwxr-xr-x  2 mysql mysql      6 2月  15 23:08 data

drwxr-xr-x  2 mysql mysql    55 2月  15 23:03 docs

。。。。。。

5)配置文件

[root@A11 mysql-5.7.28]# cd /usr/local/mysql-5.7.28/support-files

[root@A11 support-files]# ls

magic  mysqld_multi.server  mysql-log-rotate  mysql.server

[root@A11 support-files]# vi my_default.cnf

[mysqld]

 

#设置mysql的安装目录

basedir =/usr/local/mysql-5.7.28

#设置mysql数据库的数据存放目录

datadir = /usr/local/mysql-5.7.28/data

#设置端口

port = 3306

 

socket = /tmp/mysql.sock

#设置字符集

character-set-server=utf8

#日志存放目录

log-error = /usr/local/mysql-5.7.28/data/mysqld.log

pid-file = /usr/local/mysql-5.7.28/data/mysqld.pid

#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[root@A11 support-files]# cp my_default.cnf /etc/my.cnf    #将该配置覆盖至/etc/my.cnf;my.cnf是MySQL的默认配置文件

6)初始化数据库

[root@A11 mysql-5.7.28]# pwd

/usr/local/mysql-5.7.28

[root@A11 mysql-5.7.28]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.28/ --datadir=/usr/local/mysql-5.7.28/data/    #需要在安装包下进行

扩展:如果报错:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or 就安装libaio,如果没有则跳过

[root@A11 support-files]# yum -y install libaio

7)查看MySQL的临时密码:一般在最后一行

[root@A11 mysql-5.7.28]# cat /usr/local/mysql-5.7.28/data/mysqld.log

。。。。。。

2022-02-15T15:18:59.292433Z 0 [Warning] CA certificate ca.pem is self signed.

2022-02-15T15:18:59.720952Z 1 [Note] A temporary password is generated for root@localhost: n1-tDtQjb(tj

8)把启动脚本放到开机初始化目录:相当与设置MySQL开机自启

[root@A11 mysql-5.7.28]# cp support-files/mysql.server /etc/init.d/mysql

9)启动MySQL

[root@A11 mysql-5.7.28]# service mysql start

Starting MySQL. SUCCESS! 

10)配置

[root@A11 mysql-5.7.28]# ./bin/mysql -u root -p    #用MySQL用户登陆数据库

Enter password:      #输入临时密码

。。。。。。

mysql> set password=password('123456');    #更改MySQL的密码

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> grant all privileges on *.* to root@'%' identified by '123456';    #更改MySQL数据库里root用户的密码

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> flush privileges;    #刷新权限

Query OK, 0 rows affected (0.00 sec)

11)添加远程访问权限:设置root用户不管是IP地址、127.0.0.1或localhost下都可以进行远程访问

mysql> use mysql;    #进入到MySQL库里

。。。。。。

Database changed

mysql> update user set host='%' where user = 'root';    #修改user表里的root用户的host,%表示任何情况下都可以访问

ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

这里报错是因为,已经修改过了,可以通过连接数据库mysql库查看user表里的root用户

 

 

 

mysql> flush privileges;      #刷新权限

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

[root@A11 mysql-5.7.28]# service mysql restart    #重启MySQL生效

Shutting down MySQL.... SUCCESS! 

Starting MySQL. SUCCESS! 

 

 

posted @ 2022-10-25 18:35  苏州coder  阅读(425)  评论(0编辑  收藏  举报