Centos7.9安装MySQL(二进制)

安装包

https://downloads.mysql.com/archives/community/

mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz

1.卸载MariaDB

查看

bash 复制代码
rpm -qa|grep mariadb

卸载

可能名称不一样,记得替换

bash 复制代码
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

rpm -qa|grep mariadb 执行验证有没有卸载成功

查看libaio 和 numactl

bash 复制代码
[root@ncayu8847 ~]# rpm -qa|grep libaio
libaio-0.3.109-13.el7.x86_64
[root@ncayu8847 ~]# 
[root@ncayu8847 ~]# 
[root@ncayu8847 ~]# rpm -qa|grep numactl
numactl-libs-2.0.12-5.el7.x86_64
[root@ncayu8847 ~]#

如果没有则需要安装

bash 复制代码
yum -y install libaio //安装libaio 

yum -y install numactl //安装numactl 

安装 MySQL

1.上传MySQL 安装包

mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz

2.解压

注:本文安装包上传到了 /usr/local/ 目录下

进入安装包目录

bash 复制代码
cd /usr/local/

解压文件到指定目录

bash 复制代码
tar -pvxf mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz -C /usr/local/

3.重命名文件夹

将解压后的文件夹重命名为mysql-8.0.39

bash 复制代码
mv mysql-8.0.39-linux-glibc2.17-x86_64 mysql-8.0.39

创建软连接

bash 复制代码
ln -s mysql-8.0.39 mysql

4.创建存储数据文件

创建 /usr/localysql/data文件夹

bash 复制代码
mkdir mysql/data

5.设置用户组并赋权

创建用户组

bash 复制代码
groupadd mysql

创建用户

-r:创建系统用户

-g:指定用户组

bash 复制代码
useradd -r -g mysql mysql

更改文件属主 和权限

bash 复制代码
chown -R mysql:mysql /usr/local/mysql/
bash 复制代码
chmod -R 755 /usr/local/mysql/

6.初始化MySQL

进入MySQL的bin目录

bash 复制代码
cd /usr/local/mysql/bin/

初始化数据库

bash 复制代码
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

设置是否对sql语句大小写敏感,1表示不敏感

lower_case_table_names = 1

注意:#如果要设置lower_case_table_names可以在初始化里面设置 ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --lower_case_table_names=1

设置是否对sql语句大小写敏感执行这个:

bash 复制代码
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --lower_case_table_names=1

初始化完成后会打印一个随机密码,登录的时候会用到

bash 复制代码
[root@ncayu8847 bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --lower_case_table_names=1
2024-10-24T13:39:07.148956Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.39/bin/mysqld (mysqld 8.0.39) initializing of server in progress as process 13554
2024-10-24T13:39:07.160773Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-10-24T13:39:08.410704Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-10-24T13:39:10.989324Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: !fn?Puqa7-i+

随机密码:!fn?Puqa7-i+

7.配置参数文件 my.cnf

bash 复制代码
vi /etc/my.cnf

配置文件修改为以下内容,也可以根据自己需要设置参数。

bash 复制代码
[client]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
default-character-set = utf8mb4

[mysql]  
default-character-set = utf8mb4

[mysqld]  
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'

port = 3306
socket = /usr/local/mysql/data/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
datadir = /usr/local/mysql/data
lower_case_table_names=1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

配置后修改 /etc/my.cnf 的权限为644

bash 复制代码
chmod 644 /etc/my.cnf

启动 mysql 报错提示: my_print_defaults: [Warning] World-writable config file '/etc/my.cnf' is ignored.

操作数据库提示警告World-writable config file '/usr/local/mysql/my.cnf' is ignored

检查发现my.cnf权限过高【777】,将权限更改为644即可。

8.启动MySQL

bash 复制代码
/usr/local/mysql/support-files/mysql.server start

root@ncayu8847 mysql\]# /usr/local/mysql/support-files/mysql.server start Starting MySQL... SUCCESS! \[root@ncayu8847 mysql\]# #### 9.设置软连接,并重启MySQL ```bash ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql ln -s /usr/local/mysql/mysql.sock /var/mysql.sock service mysql restart ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e8e92c57fe0245b79e8e2337460166e0.png) #### 10.登录并更改密码 ```bash [root@ncayu8847 mysql]# mysql -uroot -p Enter password: 输入初始化随机密码 ``` 我的mysql 随机密码: !fn?Puqa7-i+ ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/de9d9e0a85be4d45aa6bc569e2324938.png) 第一次登录需要修改账号的密码 ```bash alter user 'root'@'localhost' identified by 'admin@123'; ``` #### 11.开放远程连接 如果不开放远程连接,root 用户只能在本地连接,当然,你也可以创建新的数据库账号。 ```bash use mysql; update user set user.Host='%' where user.User='root'; flush privileges; ``` flush privileges; 表示刷新权限 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ff131a4824a04ffcb39882ba46b853b8.png) MySQL 进程 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1ff44dfe8b664f3a8239e6dc476e1e3b.png) #### 12.连接工具测试连接MySQL 防火墙开放 3306 端口 ```bash firewall-cmd --add-port=3306/tcp firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --list-all ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6f3a654d12f7475b907f9257b5e7d6a3.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2b27817da2054ba4911ee4d210fe3242.png) 使用 DBeaver 工具连接数据库 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ec65415fdf5a4085a426d4700a9baa51.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/bb1b46b7741e40d0b34e4b1bd74ea809.png) 连接成功 #### 13.MySQL启动和停止 ```bash # 启动 service mysql start systemctl start mysql #停止 service mysql stop systemctl stop mysql # 重启 service mysql restart systemctl restart mysql # 查看状态 service mysql status systemctl status mysql ``` ### 设置开机自启动 将服务文件拷贝到 /etc/init.d下,并重命名为mysqld ```bash cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld ``` 赋予可执行权限 ```bash # 赋予可执行权限 chmod +x /etc/init.d/mysqld # 添加服务 chkconfig --add mysqld # 显示服务列表 chkconfig --list ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b68807e8729f4476984ac1a427c93277.png) 注:如果看到mysqld的服务,并且3,4,5都是on的话则成功,如果是off,则执行以下命令 ```bash chkconfig --level 345 mysqld on ``` 重启系统 ```bash reboot ``` 重启后查看mysql是否开机自启动 ```bash ps -ef|grep mysql ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5c242582bf594b008818545c7a4257a0.png) 可以开机自启动,验证通过。 ### 报错处理:Public Key Retrieval is not allowed ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4f43eb8ac5a0433c9dc2a67676efea5c.png) 连接mysql时报错:Public Key Retrieval is not allowed(不允许公钥检索) 解决方法:连接设置------驱动属性------allowPublicKeyRetrieval=false(这里的运输公钥检索是默认关闭的,需要把它开启),改为allowPublicKeyRetrieval=true即可。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7ee0f45d3f164c7aaace00e34bc37c7a.png)

相关推荐
JavaGuide4 小时前
公司来的新人用字符串存储日期,被组长怒怼了...
后端·mysql
怒放吧德德7 小时前
MySQL篇:MySQL主从集群同步延迟问题
后端·mysql·面试
张风捷特烈7 小时前
Flutter 伪3D绘制#03 | 轴测投影原理分析
android·flutter·canvas
数据智能老司机8 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
Eip不易也不e8 小时前
教程之同时安装两个版本的 mysql
mysql
数据智能老司机8 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
松果猿9 小时前
空间数据库学习(二)—— PostgreSQL数据库的备份转储和导入恢复
数据库
Kagol9 小时前
macOS 和 Windows 操作系统下如何安装和启动 MySQL / Redis 数据库
redis·后端·mysql
无名之逆9 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
s9123601019 小时前
rust 同时处理多个异步任务
java·数据库·rust