linux系统下,MySQL(8.0.37版本)下载安装

1、下载

mysql官网:https://www.mysql.com/downloads/
在这里插入图片描述
在这里插入图片描述
选择合适的版本,我这边系统是:CentOS Linux release 7.9.2009 (Core)
下载的版本如下:
在这里插入图片描述

2、安装

2.1、解压

将下载的tar包上传到服务器,解压

tar -xvf mysql-8.0.37-linux-glibc2.17-x86_64-minimal.tar

解压后新生成三个文件,我们使用第一个,解压:
mysql-8.0.37-linux-glibc2.17-x86_64-minimal.tar.xz
mysql-router-8.0.37-linux-glibc2.17-x86_64-minimal.tar.xz
mysql-test-8.0.37-linux-glibc2.17-x86_64-minimal.tar.xz

#我解压到/usr/local目录了
cp mysql-8.0.37-linux-glibc2.17-x86_64-minimal.tar.xz /usr/local/
cd /usr/local/
tar -xvf mysql-8.0.37-linux-glibc2.17-x86_64-minimal.tar.xz 

#重命名
mv mysql-8.0.37-linux-glibc2.17-x86_64-minimal mysql

# 创建数据存储目录
mkdir -p  /usr/local/mysql/data

2.2、创建用户

创建用户组和用户,启动mysql时要指定用户,提前创建好并赋权
创建用户组和用户,并给用户赋予权限

groupadd mysql
 
useradd -g mysql mysql
 
chown -R mysql.mysql /usr/local/mysql/

2.3、初始化MySQL

初始化时会用到上面创建的用户
切换到bin目录,初始化MySQL基本信息

cd /usr/local/mysql/bin/
 
./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize

初始化完成后,会生成一个默认密码,找到默认密码并记住,后面会用到

 more  /var/log/mysql.log 

找到这个密码,并记住:
2024-05-13T07:15:04.424400Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: efq1Krzd;1d(

2.4、将MySQL服务添加到系统中

将MySQL服务添加到系统

cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

2.5、授权以及添加服务到chkconfig列表

//增加mysql文件的可执行权限
chmod +X /etc/init.d/mysql
//把服务添加到chkconfig列表
chkconfig --add mysql

2.6、创建配置文件

注意注意注意:sql_mode=STRICT_TRANS_TABLES
一定要在mysql启动之前设置好,不然有些参数将不会生效

创建my.inf文件(MySQL的配置文件,用于保存MySQL服务器的各种配置参数)
下面是我的配置文件的一些常用的配置,有其他配置可以自行添加

[root@c5-jy-coupon-mysql1 mysql]# more /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log_error=/var/log/mysql.log
log_bin=/usr/local/mysql/mysql-bin
binlog_format=row
skip-name-resolve
server_id=172
gtid-mode=on
enforce-gtid-consistency=true
max_connections = 1500
transaction-isolation = READ-COMMITTED
wait_timeout = 300
interactive_timeout = 300
group_concat_max_len = 10240

sql_mode=STRICT_TRANS_TABLES
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

[client]
port            = 3306
default-character-set=utf8mb4
socket=/tmp/mysql.sock

设置my.cnf文件的权限

sudo chmod 664 /etc/my.cnf

以上,配置完毕

3、启动MySQL

service mysql start

4、登录

创建软链接
//系统默认会查找/usr/bin下的命令,如果命令不在这个目录下,会报错bash: mysql: 未找到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。

ln -s /usr/local/mysql/bin/mysql /usr/bin/

//使用临时密码登录
mysql -uroot -p
//进入到MySQL,依次执行

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Mysql@240513';

flush privileges;

quit;

//使用新密码登录,验证是否修改成功

mysql -uroot -p
#输入密码,回车即可看到版本信息

至此,安装完成,可以使用Navicat等工具远程连接。

#创建其他用户(也可以不创建,我的是单独创建一个给程序用)

CREATE USER  'sqluser'@'%' IDENTIFIED BY 'Myuser@2405';

GRANT ALL PRIVILEGES ON *.* TO  'sqluser'@'%' WITH GRANT OPTION;

flush privileges;

登录测试:
mysql -usqluser -p -P3306 -h134.90.3.60 --default-auth=mysql_native_password

5、问题记录

Caused by: java.sql.SQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'hicon_identity_manager.c.client_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)

这个是因为sql_mode配置导致的

select @@sql_mode;

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

#修改,去掉ONLY_FULL_GROUP_BY,但是这种方案一次性的,重启服务后会失效
set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值