本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1.下载安装包
https://www.mysql.com/
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
6.创建mysql组
groupadd mysql
创建mysql用户
useradd -r -g mysql mysql
将mysql-8.0.17目录授权给mysql用户
chown -R mysql:mysql mysql-8.0.17
然后进入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不区分表名大小写,根据需求来绝对是否添加此参数
初始化成功执行后关注最后一点:root@localhost: 这里就是初始密码,即>ijy/U0D2yOh为初始化生成的密码
8.为了便于使用mysql,需要添加系统路径
vim /etc/profile
将下面复制到文件末尾
export PATH=/aifs01/iam/iam_soft/mysql-8.0.17/bin:$PATH
注:/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的配置文件
设置开机自启
chkconfig --add mysqld
chkconfig mysqld on
10.启动数据库
service mysqld start
10.进入命令行
mysql -u root -p
输入你查看的初始密码(>ijy/U0D2yOh)进入
首先将root密码修改为root@2021
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root@2021';
修改连接权限
use mysql;
update user set host='%' where user='root';
然后重启数据库
service mysqld restart
重启后进入mysql命令行
mysql -u root -p
密码为刚才修改的root@2021
11.然后进行授权远程连接
use mysql;
grant all on *.* to 'root'@'%'with grant option;
flush privileges;
执行完成后,我们即可使用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;