Files
blog/source/_posts/linux/mysqlInstallation.md
2025-03-29 23:29:16 +08:00

264 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: mysql安装
date: 2021-11-20
updated: 2021-11-20
tags:
- mysql
- linux
categories:
- linux
- mysql
keywords:
- mysql
- linux
description: linux安装mysql
top_img: https://i.loli.net/2021/09/30/YJLqn57mAe6vRNo.jpg
comments: true
cover: https://i.loli.net/2021/09/30/YJLqn57mAe6vRNo.jpg
copyright: true
copyright_author: xzh
copyright_author_href: http://xxzhx.cn
copyright_url: http://xxzhx.cn
copyright_info: 著作权归作者所有。商业转载请联络作者获得授权,非商业转载请注明出处。
---
# mysql安装
## 检查是否安装`mariadb`
### 首先检查服务器是否安装过`mariadb`
```shell
rpm -qa | grep mariadb
```
![](https://i.loli.net/2021/09/30/Hh2jMntbkuodJ3y.png)
### 如果有类似,需要把他卸载
```shell
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
```
### 安装mysql的依赖包libao
```shell
yum install libaio
```
## 安装mysql
### 下载mysql
[mysql下载地址](https://dev.mysql.com/downloads/mysql/)
下载此版本:
![](https://i.loli.net/2021/09/30/hPl2pMgXrRstAOH.png)
下载之后,上传至服务器
### 解压mysql
解压
```shell
tar -zxvf mysql-8.0.26-el7-x86_64.tar.gz
```
解压之后,把解压的文件夹移动到`/usr/local/mysql`
```shell
mv mysql-8.0.26-el7-x86_64 /usr/local/mysql
```
### 创建data文件夹
进入mysql文件夹创建data文件夹
```shell
cd /usr/local/mysql
mkdir data
```
### 创建mysql组创建mysql用户并设置密码。
```shell
useradd mysql
passwd mysql
```
### 将mysql目录的权限授给mysql用户和mysql组。
```shell
chown -R mysql:mysql /usr/local/mysql
```
### 赋予权限
```shell
chmod -R 777 /usr/local/mysql
chmod -R 777 /usr/local/mysql/data
```
### 创建my.cnf配置文件
```shell
touch /usr/local/mysql/my.cnf
```
### 编辑配置文件
```shell
vi my.cnf
```
`my.cnf`内容
```ini
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=100
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
```
### 启动mysql
执行命令,记住随机密码
```shell
cd /usr/local/mysql/bin
./mysqld --initialize --console
```
输入此命令后获取出现密码,在`root@localhost`的后面,把他记住,如下
![](https://i.loli.net/2021/09/30/Enl9C6bDp43fHM8.png)
### 再赋予一次权限
因为初始了data文件夹中的文件都还没有赋予权限
```shell
chmod -R 777 /usr/local/mysql
chmod -R 777 /usr/local/mysql/data
```
### 启动服务
进入mysql中的`support-files`文件夹,启动服务
```shell
cd /usr/local/mysql/support-files
./mysql.server start
```
### 将mysql加入系统进程中
```shell
cp mysql.server /etc/init.d/mysqld
# 重启
service mysqld restart
```
## 连接mysql并设置密码
### 创建一个软连接到` /usr/bin`
```shell
ln -s /usr/local/mysql/bin/mysql /usr/bin
```
### 连接mysql
```shell
mysql -u root -p
```
![1634609326_1_.jpg](https://i.loli.net/2021/10/19/7GK6nyuU8ptmHeP.png)
### 输入上面复制的密码
![](https://i.loli.net/2021/09/30/Enl9C6bDp43fHM8.png)
### 修改密码
```sql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
```
### 设置允许远程登录
```sql
mysql> use mysql;
mysql> update user set user.Host='%' where user.User='root';
# 应用配置
mysql> flush privileges;
# 退出mysql
mysql> quit
```
### 重启mysql
```shell
service mysqld restart
```
### 检查3306端口是否开放
```shell
firewall-cmd --zone=public --list-ports
```
### 开放3306端口
```shell
firewall-cmd --zone=public --add-port=3306/tcp --permanent
```
### 重启防火墙
```shell
firewall-cmd --reload
```
# 可能出现的错误
## 登录mysql的时候报错
`mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory`
![](https://i.loli.net/2021/11/20/uVR8xj2YrTXpwPB.png)
## 解决
### 安装`libncurses`
```
yum install libncurses*
```
### 重新登录即可