安装准备:

Linux常用软件包

安装步骤:

  1. 下载好的安装包直接上传到服务器,(rz 命令或者xshell等工具)
  2. 下载地址1:https://dev.mysql.com/downloads/mysql/
  3. 下载tar包 https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
  4. 在/usr/local目录下新建目录mysql
    1. cd /usr/local
    2. mkdir mysql
    首先查看之前是否有安装过mysql的服务(像我就前前后后失败好几次) ```bash rpm -qa | grep mariadb # 命令查看 mariadb 的安装包 是否有内容输出

    如果有 直接卸载

    rpm -e mariadb-libs-xxx-xxx # 卸载mariadb

    在查看是否有内容输出,有就继续卸载 直到没有为止

    rpm -qa | grep mariadb

检查 MySQL 是否已安装

yum list installed | grep mysql 如果有的话 就全部卸载 yum -y remove +数据库名称

  1. 解压mysql8安装包
  2. ```bash
  3. 5. 解压缩mysql离线安装包
  4. tar -xvf mysql-8.0.23-2.el7.x86_64.rpm-bundle.tar
  5. # 解压出这些文件
  6. mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
  7. mysql-community-test-8.0.16-2.el7.x86_64.rpm
  8. mysql-community-client-8.0.16-2.el7.x86_64.rpm
  9. mysql-community-common-8.0.16-2.el7.x86_64.rpm
  10. mysql-community-devel-8.0.16-2.el7.x86_64.rpm
  11. mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm
  12. mysql-community-libs-8.0.16-2.el7.x86_64.rpm
  13. mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
  14. mysql-community-server-8.0.16-2.el7.x86_64.rpm
  • 4 安装 ```bash

    需要依次安装

    rpm -ivh mysql-community-common-8.0.26-1.el8.x86_64.rpm —nodeps —force rpm -ivh mysql-community-libs-8.0.26-1.el8.x86_64.rpm —nodeps —force rpm -ivh mysql-community-client-8.0.26-1.el8.x86_64.rpm —nodeps —force rpm -ivh mysql-community-server-8.0.26-1.el8.x86_64.rpm —nodeps —force rpm -ivh mysql-community-libs-compat-8.0.26-1.el8.x86_64.rpm —nodeps —force rpm -ivh mysql-community-embedded-compat-8.0.26-1.el8.x86_64.rpm —nodeps —force rpm -ivh mysql-community-devel-8.0.26-1.el8.x86_64.rpm —nodeps —force 【非必须安装】 rpm -ivh mysql-community-test-8.0.26-1.el8.x86_64.rpm —nodeps —force
<a name="w7sJT"></a>
### 设置忽略大小写配置
```sql
mysql安装完在启动前修改 /etc/my.cnf文件,
添加配置:lower_case_table_names=1


image.png

  • 5 初始化, 生成密码 启动服务

    mysqld --initialize;
    # 修改目录权限
    sudo chown mysql:mysql /var/lib/mysql -R;
    # 启动服务
    systemctl start mysqld
    # 产看密码
    cat /var/log/mysqld.log | grep password
    
  • 6 修改密码 ```shell mysql -u root -p ‘原来的密码’ # 登陆 use mysql; # 选择数据库 ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的新密码’;

//mysql5.8专用修改语法 ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘你的新密码’;

mysql> use mysql; Database changed mysql> select user,host from user; +—————————+—————-+ | user | host | +—————————+—————-+ | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +—————————+—————-+ 4 rows in set (0.00 sec)

//确定@后面加的到底是localhost 还是 @ //保险起见,最好是全部手动输入,防止有些粘贴的格式问题 mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED with mysql_native_password BY ‘123456’; Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH Privileges; Query OK, 0 rows affected (0.01 sec)

<a name="Ejrr6"></a>
## 查询MySQL是否设置了区分大小写
```sql
show variables like "%case%";

image.png
image.png
其中lower_case_table_names代表了0是区分大小写; 1是不区分大小写。显然我这个MySQL是区分大小写的。

报错1:run mysqld as root:

Mysql启动错误:Please read “Security” section of the manual to find out how to run mysqld as root!
image.png

解决办法:

加入启动参数—user=[username]
配置my.cnf,加入user=mysql意思是使用用户名mysql运行mysqld服务器
启动mysqld服务器带—user=mysql参数

mysqld --user=mysql --initalize;

报错2:mysql error : libaio.so.1image.png

解决办法:

linux libaio.so.1: cannot open shared object file: No such file or directory
缺少安装包libaio和libaio-devel.
命令行

yum install libaio*。自动安装这两个包

报错3:登录mysql 报错ERROR 1820 (HY000):

You must reset your password using ALTER USER ……
原因:首次登录mysq时报1820的错误,是因为安装好mysql时密码有一个指定的默认值,需要重置密码才能正常使用数据库,下面是解决该错误的方案:

  1. 在cmd下进入mysql安装的bin目录,登录mysql数据库:

    mysql -hlocalhost -uroot -p
    

    注:如果忘记初始密码的话,参考:https://www.cnblogs.com/wxdblog/p/6864475.html

  2. 输入登录密码;

  3. 在mysql 8.0命令下执行:

    mysql> alter user 'root'@'localhost' identified by 'youpassword';
    
  4. 刷新权限让修改的数据文件立即生效:

    mysql>flush privileges;
    

    报错4:creat date unusable

    image.png

    启动mysql报错:
    2021-01-14T10:48:08.040891Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.15) initializing of server in progress as process 8760
    2021-01-14T10:48:08.042863Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
    2021-01-14T10:48:08.042896Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/lib/mysql/ is unusable. You can safely remove it.
    2021-01-14T10:48:08.042934Z 0 [ERROR] [MY-010119] [Server] Aborting
    2021-01-14T10:48:08.043175Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.15)  MySQL Community Server - GPL.
    2021-01-14T10:48:08.384884Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 8765
    2021-01-14T10:48:08.394981Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
    2021-01-14T10:48:08.395170Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
    2021-01-14T10:48:08.395248Z 0 [ERROR] [MY-010119] [Server] Aborting
    2021-01-14T10:48:08.396025Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.15)  MySQL Community Server - GPL.
    

    解决办法:

    image.png
    清空该目录,在启动mysql,一切正常 ```bash //清空目录 rm -rf /var/lib/mysql/* //启动mysql systemctl start mysqld

[root@host-10-197-162-52 mysql]# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-01-14 19:01:35 CST; 3min 54s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 10902 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 10983 (mysqld) Status: “SERVER_OPERATING” CGroup: /system.slice/mysqld.service └─10983 /usr/sbin/mysqld

Jan 14 19:01:23 host-10-197-162-52 systemd[1]: Starting MySQL Server… Jan 14 19:01:35 host-10-197-162-52 systemd[1]: Started MySQL Server. [root@host-10-197-162-52 mysql]# ``` //参考文章:
https://blog.csdn.net/wgPython/article/details/95202117
https://blog.csdn.net/a332056918/article/details/87803901