centos上Mysql安装及配置

5.7和8.0的默认字符集是utf8mb4,  5.6的是utf8
1.mysql安装包下载链接:
https://dev.mysql.com/downloads/mysql/

2.(mysql-8.0.34-linux-glibc2.17-x86_64.tar.gz)
(mysql-8.0.34-linux-glibc2.28-x86_64.tar.gz)
两者有什么区别:

这两个文件名中的"glibc2.17""glibc2.28"表示了两个不同的glibc(GNU C Library)版本。
glibc是Linux系统中的重要组件之一,它提供了许多操作系统功能和服务的实现。不同的Linux发行版和版本可能使用不同的glibc版本。
在你提供的两个文件中,"glibc2.17"表示该MySQL版本是构建和编译在glibc 2.17上的,而"glibc2.28"表示该MySQL版本是构建和编译在glibc 2.28上的。
选择正确的glibc版本对于确保MySQL与特定Linux发行版和版本的兼容性非常重要。因此,你应该根据你的操作系统使用的glibc版本来选择相应的MySQL tar.gz包进行安装。
如果你的CentOS 7.6系统使用的是glibc 2.17,那么你应该选择下载并安装"glibc2.17"版本的MySQL tar.gz包。
如果你不确定你的系统使用的是哪个glibc版本,你可以在终端中运行以下命令来查看:
ldd --version
根据输出结果中的glibc版本信息,选择对应的MySQL tar.gz包进行安装。
请注意,确保选择与你的操作系统和glibc版本兼容的MySQL版本是非常重要的,否则可能会导致不稳定或不可预测的行为。

3.
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
由 Roland McGrath 和 Ulrich Drepper 编写。

1.添加mysql用户:

groupadd mysql
useradd -r -g mysql mysql

2.解压mysql:

tar zxf mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
cd /usr/local/
mv mysql-5.6.51-linux-glibc2.12-x86_64/ mysql
chown -R mysql:mysql mysql/

3.创建mysql实例数据目录:

mkdir /data/mysql/3306/data -p
chown -R mysql:mysql /data/mysql

4.编辑配置文件
在MySQL 8.0中,UTF-8被称为UTF-8MB4,它支持4字节的Unicode字符。因此,使用utf8mb4代替utf8来设置字符集。
比如:character-set-server=utf8mb4

cp /usr/local/mysql/support-files/my-default.cnf /data/mysql/3306/my.cnf
vi /data/mysql/3306/my.cnf
#复制下文到配置文件
[client]
password = 123456
port = 3306
socket = /data/mysql/3306/mysql_3306.sock
default-character-set=utf8
#mysql8.0使用下面这个
#default-character-set=utf8mb4


[mysqld]
#给mysql8.0 配一下mysql_native_password
default_authentication_plugin = mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION
port = 3306
socket = /data/mysql/3306/mysql_3306.sock
pid-file = /data/mysql/3306/mysql.pid
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/3306/data
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
#mysql8.0使用下面这个
#character-set-server=utf8mb4
#collation-server=utf8mb4_unicode_ci


#lower_case_table_names = 0:表名区分大小写,且按照用户指定存储。
#lower_case_table_names = 1:表不区分大小写,使用小写存储。
#lower_case_table_names = 2:表不区分大小写,按照用户指定存储
lower_case_table_names=0
max_connections=1500

5.添加环境变量:

#修改数据目录的属主、属组
chown -R mysql:mysql /data/mysql/

vim /etc/profile
#添加这两行到配置文件
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
#加载配置文件
source /etc/profile

6.初始化:
安装autoconf,不然会报错:

FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
Data::Dumper

yum install autoconf -y

创建需要目录和文件,并设置属主和属组,不然会报错:

mysqld_safe Directory ‘/var/lib/mysql’ for UNIX socket file don’t exists.
mysqld_safe error: log-error set to ‘/var/log/mariadb/mariadb.log’, however file don’t exists. Create writable for user ‘mysql’.

mkdir   /var/log/mariadb/
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql   /var/log/mariadb/
mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql

准备完毕,初始化
(datadir 要与配置文件一致)

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/3306/data --user=mysql
chown -R mysql:mysql /data/mysql/

mysql8.0初始化:

mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql/3306/data --user=mysql
chown -R mysql:mysql /data/mysql/

mysql8.0差异处:

在MySQL 8.0版本中,mysql_install_db命令已被弃用。在之前的MySQL版本中,mysql_install_db用于初始化MySQL数据目录并创建系统表。然而,在MySQL 8.0及以后的版本中,使用了新的数据目录初始化方法。

在MySQL 8.0中,可以使用mysqld命令来初始化数据目录。以下是在MySQL 8.0中初始化数据目录的一般步骤:

确保MySQL已经安装并配置正确。

打开终端或命令提示符,并切换到MySQL的安装目录。

执行以下命令来初始化数据目录:

mysqld --initialize-insecure
这将使用默认配置初始化数据目录,并生成一个初始的空密码,允许无密码访问

7.mysql启动实例:

mysqld_safe --defaults-file=/data/mysql/3306/my.cnf 2>&1 > /dev/null &

8.查看实例:

netstat -tulpn | grep -i mysql
或
ps -ef | grep mysql

9.登录实例:

#这里mysql的root用户并没有设置密码,密码提示直接敲 Enter即可
mysql -uroot -p -S /data/mysql/3306/mysql_3306.sock
Enter password: 直接回车

10.关闭实例:

#这里mysql的root用户并没有设置密码,密码提示直接敲 Enter即可
mysqladmin -uroot -p -S /data/mysql/3306/mysql_3306.sock shutdown
或:
mysqladmin  -S /data/mysql/3306/mysql_3306.sock shutdown
或:(不写-h的时候默认是localhost,有时候是127.0.0.1用户,而没有localhost用户,需要分清楚)
mysqladmin   -h 127.0.0.1  -P 3306   -S /data/mysql/3306/mysql_3306.sock  -p   shutdown


如果mysql用户没shutdown权限(可以grant赋权或者直接改mysql.user赋权):
kill -SIGTERM pid-of-mysqld-process(也可以kill,慎用)

mysql8.0认证【MySQL】Authentication plugin 'caching_sha2_password' reported error

使用MySQL8.0.30创建主从,启动从库的时候报错:

1
2
Last_IO_Errno:2061
Last_IO_Error:error connecting to mater 'repl@xxxxx:3308' - retry-time:60 retries:1 massage:Authentication plugin 'caching_sha2_password' reported error:Authentication require secure connection.


原因是在MySQL8之前,身份验证插件默认是mysql_native_password;而从8.0开始,换成了caching_sha2_password。



1.可以在mysql server的配置文件中,继续使用旧的验证插件。在配置文件中即可。

1
2
[mysqld]
default_authentication_plugin=mysql_native_password


2.也可以在用户级别进行修改,修改用户使用的验证插件即可:

1
2
3
# 相当于重新设置密码
alter user '[username]'@'[host]' identified with mysql_native_password by '[password]';


3.也可以使用GET_MASTER_PUBLIC_KEY=1,请求公钥:

1
mysql> change master to master_host='xxxx', master_port=3308, master_user='repl', master_password='pwd',master_auto_position = 1,get_master_public_key=1;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

confined.

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值