Linux中部署Mysql8.0.17

393 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1.下载安装包

https://www.mysql.com/

BDDAF1F0-99C0-4B2E-BB29-3AD7ADAF1E64.png

3C62BEA2-D572-4CC0-8D7B-0A81CC9E6499.png

2.将下载的安装包上传到服务器然后解压安装包

tar -xvf mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz

3.将解压文件重新命名

mv mysql-8.0.17-linux-glibc2.12-x86_64  mysql-8.0.17

4.进入mysql目录

cd  mysql-8.0.17/

5.创建安装需要的路径及配置文件

在mysql-8.0.17目录下创建data 、mysqld和logs目录

注:data目录用于存放数据  logs目录用于存放日志  mysqld目录用于存放进程号

然后创建my.cnf 配置文件      

vim  my.cnf

进入文件后按“i”键,然后将下面内容复制进去后按esc, :wq进去保存退出

[mysqld]

socket=/aifs01/iam/iam_soft/mysql-8.0.17/data/mysql.sock

port = 8806

default-time_zone = '+8:00'

basedir=/aifs01/iam/iam_soft/mysql-8.0.17/

datadir=/aifs01/iam/iam_soft/mysql-8.0.17/data

innodb_buffer_pool_size = 3G

max_connections = 1000

wait_timeout = 600

interactive_timeout = 600

log_bin=/aifs01/iam/iam_soft/mysql-8.0.17/logs

pid-file=/aifs01/iam/iam_soft/mysql-8.0.17/mysqld/mysql.pid

server-id=16

binlog_format=mixed

character_set_server=utf8

skip-name-resolve

autocommit = 1

sort_buffer_size = 32M

join_buffer_size = 128M

tmp_table_size = 72M

max_allowed_packet = 16M

read_buffer_size = 16M

read_rnd_buffer_size = 32M

lower_case_table_names = 1

#skip_networking

table_open_cache = 400

thread_cache_size=768

key_buffer_size=32M

read_buffer_size=8M

read_rnd_buffer_size=4M

back_log=1024

#flush_time=0

open_files_limit=65535

table_definition_cache=1400

log_queries_not_using_indexes = 1

log_slow_admin_statements = 1

log_slow_slave_statements = 1

log_throttle_queries_not_using_indexes = 10

expire_logs_days = 90

min_examined_row_limit = 100

innodb_log_file_size = 200M

innodb_log_files_in_group = 2

innodb_log_buffer_size = 16M

secure_file_priv=''

[mysqld_safe]

log-error=/aifs01/iam/iam_soft/mysql-8.0.17/logs/mysql-error.log

然后进入logs目录创建mysql-error.log文件

cd  logs/

touch  mysql-error.log

image.png

6.创建mysql组

groupadd mysql

创建mysql用户       

useradd -r -g mysql mysql

将mysql-8.0.17目录授权给mysql用户

chown -R mysql:mysql mysql-8.0.17

image.png

然后进入mysql-8.0.17/bin目录     

cd  mysql-8.0.17/bin

7.执行初始化    

./mysqld   --defaults-file=/aifs01/iam/iam_soft/mysql-8.0.17/my.cnf    --initialize --user=root --basedir=/aifs01/iam/iam_soft/mysql-8.0.17 --datadir=/aifs01/iam/iam_soft/mysql-8.0.17/data   --lower-case-table-names=1

注:lower-case-table-names=1不区分表名大小写,根据需求来绝对是否添加此参数 image.png

初始化成功执行后关注最后一点:root@localhost: 这里就是初始密码,即>ijy/U0D2yOh为初始化生成的密码

8.为了便于使用mysql,需要添加系统路径

vim /etc/profile

将下面复制到文件末尾

export PATH=/aifs01/iam/iam_soft/mysql-8.0.17/bin:$PATH

image.png 注:/aifs01/iam/iam_soft/mysql-8.0.17为安装解压路径

然后保存,刷新环境变量

source /etc/profile

9.设置开机自启       

cd  /aifs01/iam/iam_soft/mysql-8.0.17/support-files

cp mysql.server /etc/init.d/mysqld   

修改启动文件:         

vi  /etc/init.d/mysqld

修改里面的datadir=   basedir=  为你mysql的实际的部署目录具体查看你的mysql的配置文件

EBEC25B5-1B0C-42F1-9D72-0682FC1DEE6A.png 设置开机自启

chkconfig --add mysqld

chkconfig mysqld on

image.png

10.启动数据库

service mysqld start

image.png

10.进入命令行

mysql -u root -p

 输入你查看的初始密码(>ijy/U0D2yOh)进入

image.png

首先将root密码修改为root@2021

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root@2021';

修改连接权限

use mysql;

update user set host='%' where user='root';

58161D8D-FE45-4870-8042-5CC9E74FB191.png

然后重启数据库

service mysqld restart

image.png

重启后进入mysql命令行

mysql -u root -p

密码为刚才修改的root@2021

11.然后进行授权远程连接

use mysql;

grant all on *.* to 'root'@'%'with grant option;

flush privileges;

image.png

执行完成后,我们即可使用Navicat进行远程连接

12.使用5.7客户端连接8.0.17数据库的时候提示Unable to load authentication plugin 'caching_sha2_password'

报错原因

 这个是因为,mysql8之前的版本使用的密码加密规则是mysql_native_password,但是在mysql8则是caching_sha2_password,所以需要修改密码加密规则。

解决方法

打开命令行

登录mysql

这里root@2021为密码

#使用mysql数据库

use mysql; 

#修改'root'@'localhost'用户的密码规则和密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root@2021';

#刷新权限

FLUSH PRIVILEGES;