redhat7 mysql_Mysql8.0安装(Redhat7)

fe3cbf35b158492c4cd31ec854f0f831.png

下载tar包(一般是手动下载tar包):

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

将文件移动到 /usr/local/mysql下解压

mv /usr/local/src/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

进入mysql目录:cd /usr/local/mysql;

解压;tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz  得到mysql-8.0.11-linux-glibc2.12-x86_64

重命名; mv mysql-8.0.11-linux-glibc2.12-x86_64 mysql8.0;

# 创建文件夹data,存储文件;

cd /usr/local/mysql8.0/

mkdir ./data

2.2 创建用户及用户组

# 用户组

groupadd mysql

# 用户 (用户名/密码)

useradd -g mysql mysql

2.3 授权

chown -R mysql.mysql /usr/local/mysql8.0/ # 亲测

2.4 初始化数据库:

# 查看当前所在目录

pwd # 若显示/usr/local/mysql8.0,请继续执行,否则请先进入此目录/usr/local/mysql8.0

# 初始化 注意查看是否存在相关目录,若不存在,请新建

./bin/mysqld --user=mysql --basedir=/usr/local/mysql8.0/ --datadir=/usr/local/mysql/mysql8.0/data/ --initialize ; # 亲测

得到临时密码

2.5 Mysql配置(按照自己的文件路径配置,关于其他配置,可自行搜索,若有【mysql-safe】的配置,可以先注释掉)

没有my.cnf,mysql.sock文件的话,手工创建,并设置相应的mysql,mysql用户权限

chown -R mysql.mysql mysql.sock

vi /etc/my.cnf

ae639b5e606c089f202860eea8789136.png

2.6 建立MySQL服务(注意当前路径应该在mysql8.0,即support-files的根目录)

# 添加Mysql到系统服务(设置开机启动)

cp -a ./support-files/mysql.server /etc/init.d/mysql # 若mysqld,以下mysql相应的修改mysqld,如下图所示

chmod +x /etc/init.d/mysql

chkconfig --add mysql

# 检查服务是否生效

chkconfig --list mysql

ae639b5e606c089f202860eea8789136.png

3、启动Mysql服务

# 启动

service mysql start;

# 查看启动状态

service mysql status;

ln -s /usr/local/mysql8.0/bin/mysql /usr/bin

966708931bc65448951f47dc9541ccbd.png

登陆Mysql:(登录后只能先修改密码)

# 登陆

mysql -uroot -p

# 输入"初始化数据库"操作时的"临时密码"

ae639b5e606c089f202860eea8789136.png

修改密码:

ALTER USER "root"@"localhost" IDENTIFIED WITH mysql_native_password BY "新密码";

# MySQL 配置文件,

# 数据库目录 /data/mysql

[client]

port=3306

# mysql socket 文件存放地址

socket=/tmp/mysql.sock

# 默认字符集

default-character-set=utf8

[mysqld]

server-id=1

# 端口

port=3306

# 运行用户

user=mysql

# 最大连接

max_connections=200

socket=/tmp/mysql.sock

# mysql 安装目录(解压后文件的目录)

basedir=/usr/local/mysql

# 数据目录(这里放在我们新建的 /data/mysql 下)

datadir=/data/mysql

pid-file=/data/mysql/mysql.pid

init-connect="SET NAMES utf8"

character-set-server=utf8

# 数据库引擎

default-storage-engine=INNODB

log_error=/data/mysql/mysql-error.log

slow_query_log_file=/data/mysql/mysql-slow.log

# 跳过验证密码

#skip-grant-tables

[mysqldump]

quick

max_allowed_packet=16M

EOF

可能会有好几个地方有 mysql 的配置文件,它的读取顺序是这样的

/etc/my.cnf

basedir/my.cnf

datadir/my.cnf

–defaults-extra-file #在读取全局配置文件之后,读取用户配置文件 (~/.my.cnf)之前,读取extra指定的参数文件

~/.my.cnf

所以我们在 /etc 下的配置文件 my.cnf 是第一个读取的文件,读到这个文件后就不会在读后面路劲中的配置文件。

4、远程连接

1.在 my.cnf 的mysqld 下增加

default_authentication_plugin=mysql_native_password

远程连接操作不应该修改mysql中user表中用户为root的记录,而是创建一条root记录

updateuserset host ="%"whereuser="root";

ALTERUSER"root"@"%"IDENTIFIEDWITH mysql_native_passwordBY"root";

FLUSHPRIVILEGES;

若为以上操作,则可能导致本机无法登录(即使密码准确)

4.授权 root 用户的所有权限并设置远程访问

CREATE USER

"root"@"%" IDENTIFIED BY "111111";

ALTER USER

"root"@"%" IDENTIFIED WITH mysql_native_password BY "111111";(修改加密规则并更新密码)

设置为远程登录

GRANT ALL PRIVILEGES ON *.* TO "root"@"%" IDENTIFIED BY "root" WITH GRANT OPTION;(操作报语法错误)

GRANT ALL PRIVILEGES ON *.* TO "root"@"%" WITH GRANT OPTION ;(这个命令ok)

GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。

5.刷新权限

所有操作后,应执行

flush privileges;

关键的三个命令:

> mysql>CREATE USER "root"@"%" IDENTIFIED BY "root"; //这个操作是mysql 8.0中得加的

> mysql> GRANT ALL PRIVILEGES ON *.* TO "root"@"%"WITH GRANT OPTION; //任何远程主机都可以访问数据库

> mysql> FLUSH PRIVILEGES; //需要输入次命令使修改生效

2.进入mysql安装目录bin/ 使用safe模式(跳过密码登录),进行重启:

./mysqld_safe --skip-grant-tables

8.修改加密规则

ALTER USER "root"@"localhost" IDENTIFIED BY "password" PASSWORD EXPIRE NEVER;

8.0版本

ALTER USER "root"@"localhost" IDENTIFIED WITH mysql_native_password BY "你的密码";

password 为你当前密码。

9.更新 root 用户密码

ALTER USER "root"@"%" IDENTIFIED WITH mysql_native_password BY "password";

password 为你新设置的密码。

10.刷新权限

FLUSH PRIVILEGES;