mysql的安装 8.0.35-centos7.9 64位

本文详细描述了在Linux服务器上卸载mariadb,安装libaio以提升MySQL性能,离线下载并手动安装MySQL8.0,配置环境变量,创建数据目录和日志,设置安全选项,以及开启防火墙和尝试开机自启动的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.检查系统中是否自带mariadb

[root@iZ8vb4kqbeb43cx7m9xnj4Z ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64

2.卸载系统自带的mariadb并检查是否成功

[root@iZ8vb4kqbeb43cx7m9xnj4Z ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@iZ8vb4kqbeb43cx7m9xnj4Z ~]# rpm -qa | grep mariadb
[root@iZ8vb4kqbeb43cx7m9xnj4Z ~]#

3.检查是否安装libaio(使用Libaio 可以让 Mysql 数据库在 I/O 操作中实现异步读写,从而提高查询效率和性能

[root@iZ8vb4kqbeb43cx7m9xnj4Z ~]# yum list installed | grep libaio
[root@iZ8vb4kqbeb43cx7m9xnj4Z ~]#     

如上所示:未查询到安装libaio

4.执行安装libaio

[root@iZ8vb4kqbeb43cx7m9xnj4Z ~]# yum install -y libaio

等待安装完成

Installed:
  libaio.x86_64 0:0.3.109-13.el7
​
Complete!
[root@iZ8vb4kqbeb43cx7m9xnj4Z ~]#
​

5.我选择手动离线安装(mysql下载地址MySQL :: Download MySQL Community Server (Archived Versions)

下载前,请确认ldd 版本

[root@iZ8vb4kqbeb43cx7m9xnj4Z ~]# ldd --version
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.
Written by Roland McGrath and Ulrich Drepper.
​

下载glibc2.17版本对应的数据库。

6.下载好后通过工具上传到服务器上(我这放置的路径是/usr/local)

7.通过下面的命令解压tar -Jvxf,为了方便,对解压后的文件夹进行了重命名mysql80

[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# pwd
/usr/local
[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# ls
aegis  bin  etc  games  include  lib  lib64  libexec  mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz  sbin  share  src
[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# tar -Jvxf mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz
######查看文件并通过mv命令进行重名名
[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# ls
aegis  etc    include  lib64    mysql-8.0.35-linux-glibc2.17-x86_64         sbin   src
bin    games  lib      libexec  mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz  share
[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# mv mysql-8.0.35-linux-glibc2.17-x86_64 mysql80
[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# ls
aegis  bin  etc  games  include  lib  lib64  libexec  mysql80  mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz  sbin  share  src
[root@iZ8vb4kqbeb43cx7m9xnj4Z local]#

8.配置环境变量,并重新加载系统环境变量文件,查看是否安装成功

[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# echo "export PATH=$PATH:/usr/local/mysql80/bin" >>/etc/profile
[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# source /etc/profile
​
[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# mysql --version
mysql  Ver 8.0.35 for Linux on x86_64 (MySQL Community Server - GPL)
​
​

9.创建数据目录与日志目录,并查看是否创建成功,同时创建用户组并赋权

[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# mkdir -p /data/mysql80/datas
[root@iZ8vb4kqbeb43cx7m9xnj4Z local]# mkdir -p /data/mysql80/logs
[root@iZ8vb4kqbeb43cx7m9xnj4Z mysql80]# pwd
/data/mysql80
[root@iZ8vb4kqbeb43cx7m9xnj4Z mysql80]# ls
datas  logs
​
groupadd mysql  # 创建用户组mysql
useradd -r -g  mysql jonmax  # 创建用户jonmax(-r 创建系统用户  -g 分组)
​
chown -R jonmax:mysql /data/mysql80
chmod -R 750 /data/mysql80/datas
chmod -R 750 /data/mysql80/logs
​
​

10.创建/编辑修改,配置文件my.cnf,若没有此文件,vim命令会默认创建

vim /etc/my.cnf

my.cnf 配置如下:

[mysql]
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock
​
[mysqld]
port       = 3306
server-id  = 1
socket     = /tmp/mysql.sock
# 安装目录
basedir    = /usr/local/mysql80
# 数据存放目录
datadir    = /data/mysql80/datas/mysql
log-bin    = /data/mysql80/datas/mysql/mysql-bin
innodb_data_home_dir     =/data/mysql80/datas/mysql
innodb_log_group_home_dir =/data/mysql80/datas/mysql
#日志及进程数据的存放目录
log-error =/data/mysql80/logs/mysql.log
pid-file  =/data/mysql80/logs/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
collation-server=utf8mb4_general_ci
init_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1
performance_schema=off
table_open_cache=128
transaction_isolation=READ-COMMITTED
max_connections=1000
max_connect_errors=6000
max_allowed_packet=64M
innodb_file_per_table=1
innodb_buffer_pool_size=512M
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800
expire_logs_days = 2
binlog_format=mixed
​
character-set-client-handshake = FALSE

11.初始化mysql

[root@iZ8vb4kqbeb43cx7m9xnj4Z mysql80]# mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql80 --datadir=/data/mysql80/datas/mysql --user=root --initialize-insecure
[root@iZ8vb4kqbeb43cx7m9xnj4Z mysql80]#
  • --defaults-file: 指定配置文件 (放在--initialize-insecure前)

  • --user: 指定用户

  • --basedir: 指定安装目录

  • --datadir: 指定初始化数据目录

  • --initialize-insecure: 初始化不设置密码,随机生成密码,需在 /data/mysql80/logs/mysql.log 查看

12.启动mysql

[root@iZ8vb4kqbeb43cx7m9xnj4Z ~]# su jonmax
bash-4.2$
bash-4.2$
bash-4.2$
bash-4.2$  mysqld_safe --defaults-file=/etc/my.cnf &
[2] 2638
[root@iZ8vb4kqbeb43cx7m9xnj4Z bin]# ps -ef | grep mysql
root      1175  1075  7 16:48 pts/0    00:00:00 ./mysqld --skip-grant-tables --skip-networking --user=root
root      1222  1075  0 16:48 pts/0    00:00:00 grep --color=auto mysql
[root@iZ8vb4kqbeb43cx7m9xnj4Z bin]#

13.登录mysql~修改密码和用户远程登录

[root@iZ8vb4kqbeb43cx7m9xnj4Z bin]# mysql -uroot
​
mysql> alter user 'root'@'localhost' identified by '123456';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
​
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
​
Database changed
​
mysql> update user set host='%' where user='root';#修改root 用户可以远程访问
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
​
mysql> select user,host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
​
mysql> flush privileges;#刷新权限
​
​
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; #赋权
Query OK, 0 rows affected (0.01 sec)
​
mysql> FLUSH PRIVILEGES;#刷新权限
Query OK, 0 rows affected (0.00 sec)
​
​
​

14.开启3306端口重启防火墙

[root@iZ8vb4kqbeb43cx7m9xnj4Z bin]#firewall-cmd --add-port=3306/tcp --permanent
[root@iZ8vb4kqbeb43cx7m9xnj4Z bin]# systemctl restart firewalld
​

注:阿里云需要再控制台开发3306端口

15.开机自动启动-我失败了,不知道什么原因,不想研究了

[root@iZ8vb4kqbeb43cx7m9xnj4Z bin]# cp /usr/local/mysql80/support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@iZ8vb4kqbeb43cx7m9xnj4Z bin]# chmod +x /etc/init.d/mysqld
[root@iZ8vb4kqbeb43cx7m9xnj4Z bin]# chkconfig --add mysqld
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值