CentOS7.9安装Mysql8.0.37

1、下载前的注意事项

1.1、选择 glibc 版本

选择mysql版本前先看一下操作系统(CentOS)的 glibc 版本
使用命令:

ldd --version

查看glibc版本
mysql对应版本选择

1.2、官方下载地址

链接: 官方下载地址

1.3、 卸载MariaDB

在CentOS中默认安装有MariaDB。
因此,需要先卸载自带的MariaDB,再安装MySQL。

  1. 查询MariaDB

rpm -qa|grep mariadb

  1. 卸载MariaDB

rpm -e --nodeps 【上面查询出来的MariaDB】

  1. 检查是否卸载干净

rpm -qa|grep mariadb

2、下载后操作

2.1、解压mysql文件

.tar.gz后缀:tar -zxvf 文件名
.tar.xz后缀:tar -Jxvf 文件名

2.2、重命名

mv 解压后文件夹名 mysql8

3、用户和用户组

3.1、创建用户和用户组

#创建一个用户组:mysql
groupadd mysql
#创建一个系统用户:mysql,指定用户组为mysql
useradd -r -g mysql mysql

4、数据目录

4.1、创建数据目录

mkdir -p /usr/local/mysql/mysql8/datas
#这里是我自己的目录,你们可以自己配置

4.2、设置权限

#更改属主和数组
chown -R mysql:mysql /usr/local/mysql/mysql8/datas
#更改模式
chmod -R 750 /usr/local/mysql/mysql8/datas

5、初始化MySQL

5.1、配置mysql参数,也就是设置配置文件

[mysql]
#默认字符集
default-character-set=utf8mb4
[client]
port = 33068
socket = /tmp/mysql.sock
[mysqld]
port = 33068
server-id = 33068
user = mysql
socket = /tmp/mysql.sock
#安装目录
basedir = /usr/local/mysql/mysql8/
#数据存放目录
datadir = /usr/local/mysql/mysql8/datas/mysql
log-bin = /usr/local/mysql/mysql8/datas/mysql/mysql-bin
innodb_data_home_dir =/usr/local/mysql/mysql8/datas/mysql
innodb_log_group_home_dir =/usr/local/mysql/mysql8/datas/mysql
#日志及进程数据的存放目录
log-error =/usr/local/mysql/mysql8/datas/mysql/mysql.log
pid-file =/usr/local/mysql/mysql8/datas/mysql/mysql.pid
#服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
####实际上只要设置上面这些内容就行了,下面不是必须的#########
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
#创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

5.2、初始化mysql

mysqld --defaults-file=/usr/local/mysql/mysql8/my.cnf
 --basedir=/usr/local/mysql/mysql8/
   --datadir=/usr/local/mysql/mysql8/datas/mysql
    --user=mysql --initialize-insecure

参数:

  • defaults-file:指定配置文件(要放在–initialize 前面)
  • user: 指定用户
  • basedir:指定安装目录
  • datadir:指定初始化数据目录
  • intialize-insecure:初始化无密码

5.3、初始化mysql报错解决记录

  1. 错误1

    mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

#遇到这个错误,意味着系统找不到 libaio.so.1 这个共享库文件,这通常是由于该库未安装或者路径设置不正确导致的。解决这个问题,你可以按照以下步骤操作:

  1. 安装 libaio 库
    首先,尝试安装 libaio 库,这个库提供了对异步I/O的支持,MySQL 8可能依赖于它。在CentOS 7上,可以使用 yum 来安装:
    sudo find / -name libaio.so.1
  2. 验证安装
    安装完成后,确认 libaio.so.1 文件是否存在以及它的位置。通常,这个文件会被安装到 /usr/lib64/ 或 /usr/lib/ 目录下。你可以通过以下命令查找:
    sudo find / -name libaio.so.1
  3. 如果库已存在但问题仍然出现
    如果库文件已经存在,但是MySQL服务启动时仍然报同样的错误,可能是由于库路径没有被正确加载。这时,你需要确保 /etc/ld.so.conf.d 目录下的某个配置文件包含了库文件所在目录,或者直接在 /etc/ld.so.conf 文件中添加该路径。
    sudo ldconfig

6、启动MySQL

进入mysql的bin目录下,用下方命令启动。

mysqld_safe --defaults-file= /usr/local/mysql/mysql8/my.cnf &

6.1、登录mysql

#无密码登录方式 /data/software/mysql8/bin/mysql -u root --skip-password
#有密码登录方式(初始的随机密码在/data/mysql8_data/mysql/mysql.log下) mysql -u root -p
password:随机密码

6.2、修改密码

#修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

#刷新权限

FLUSH PRIVILEGES;

6.3、设置运行远程登录

use mysql 
update user set user.Host='%' where user.User='root';
flush privileges; 
quit;

6.4、创建新用户并设置远程连接

  1. 以root用户身份登录MySQL:
mysql -u root -p
  1. 创建用户

    接下来,创建一个新用户,并允许其从任意IP地址(%)进行远程连接,同时为其设置密码。例如,创建一个名为newuser,密码为password123的用户,并允许远程连接:

 CREATE USER 'newuser'@'%' IDENTIFIED BY 'password123';
  1. 授予远程连接权限
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
  1. 刷新权限
FLUSH PRIVILEGES;

6.4、最后再去navicat试一试就行了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值