linux环境安装mysql8数据库

linux环境安装mysql8数据库

背景:自己有台云服务器,系统是centos7,内存4G,cpu是2核的,上面部署了一个Java应用设置的jvm最大占1G,之前单独买了一个云数据库,因为资金紧张到期不想续费,所以想在应用服务器上安装一个mysql,让服务正常运行。

分析:安装方式有两种:一种是安装包的方式,另一种是yum方式安装。接下来我们用一个传统的安装包方式安装。疑问点:mysql运行起来占多少内存?实际数据量小初期占 500Mb多点,后期随着数据的增大内存占有也会变大。

1.下载mysql安装包

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

百度云盘下载地址:链接:https://pan.baidu.com/s/1UiKuxMdsHcp6JGl2giip7g
提取码:8v9v
在这里插入图片描述

2.手动安装mysql8
2.1 把安装包放到 linux 的“/usr/local”
2.2 解压安装包
tar -Jxf mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz 

解压mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz后会出现一个为mysql-8.0.35-linux-glibc2.12-x86_64的目录,将其修改为mysql

 mv mysql-8.0.35-linux-glibc2.12-x86_64 mysql
3.创建mysql用户组及用户,并给mysql用户设置密码
[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -r -g mysql mysql
[root@localhost mysql]# passwd mysql
更改用户 mysql 的密码 。
新的 密码:Aa111111
重新输入新的 密码:Aa111111
passwd:所有的身份验证令牌已经成功更新。
4. 修改mysql配置文件:/etc/my.cnf

my.cnf存在,因为centos7中安装了mariadb。

[mysqld]
# 安装路径
basedir = /usr/local/mysql
#数据存储路径
datadir = /usr/local/mysql/data 
#端口
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
#编码方式
character-set-server = utf8mb4
collation_server = utf8mb4_general_ci
skip-name-resolve
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
lower_case_table_names=1
# 设置密码格式
#default_authentication_plugin=mysql_native_password
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

把配置文件中没用替换成上面的内容。

配置文件中注意点:

  • character-set-server = utf8mb4:表示mysql服务器级别默认的字符集编码,最好设置为utf8mb4;
  • lower_case_table_names=1:表示mysql中将表名一律转为小写;(其实取值有0、1或2,其中2是最理想的状态,但是这个配置在window、linux、macos下表现的不一致,所以还是取1吧,只不过取1后,所有的表名都强制小写。)
5.在mysql目录下创建data文件夹存储数据文件
mkdir data
6.设定目录访问权限

在mysql目录下执行下面的两行命令(.在linux环境下表示当前目录)

chown -R mysql .
chgrp -R mysql .
7.初始化数据库
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lower_case_table_names=1

执行结束后用下面的命令查找到数据库默认的root用户的密码:

cat /usr/local/mysql/data/error.log |grep “root@”

[root@VM-4-6-centos etc]# cat /usr/local/mysql/data/error.log |grep "root@"
2023-12-26T07:31:58.214969Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: i->wW8_Mpr7f

:冒号后面的全是密码。

8.启动MySQL

在mysql目录下执行下面的命令,出现 SUCCESS就是启动成功。

./support-files/mysql.server start
[root@localhost mysql]# ./support-files/mysql.server start
Starting MySQL............ SUCCESS! 
[root@localhost mysql]# ps -aux|grep mysql
9.登录MySQL及修改root密码
./bin/mysql -uroot -p
输入密码:i->wW8_Mpr7f

修改root 密码如下sql:

alter user 'root'@'localhost' identified by '1qaWsX';

修改成功后 exit 退出登录。

10.配置远程访问

创建远程登录对象:CREATE USER ‘root’@‘%’ IDENTIFIED BY ‘Aa111111’;

授权远程登录:grant all privileges on . to ‘root’@‘%’ with grant option;

强制刷新:flush privileges;

11.MySQL的启动、停止、重启命令

在mysql 目录下

启动命令:./support-files/mysql.server start

重启命令:./support-files/mysql.server restart

停止命令:./support-files/mysql.server stop

客户端连接:./bin/mysql -hlocalhost -P3306 -uroot -p 简写为:./bin/mysql -uroot -p

12.MySQL8的用户密码问题

由于mysql8的密码采用了“caching_sha2_password”模式,而老版的是“mysql_native_password”模式,所以造成很多客户端连接不上。

解决方案: 1. 升级客户端 2.修改mysql8的密码模式

12.1修改mysql8的密码模式

1.在my.cnf 文件中添加:default_authentication_plugin=mysql_native_password 然后重启mysql,之后新建的用户都是“mysql_native_password”模式。

2.对于安装时已经存在的用户(比如:root)或想给单个用户设定密码模式的可以采用如下命令:

alter user 'root'@'%' identified with mysql_native_password by 'Aa111111';
flush privileges;

到这里mysql8 安装结束,并且可以远程访问了。

  • 27
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苹水相峰

你的打赏是对我最大的肯定

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值