linux最靠谱安装mysql方法(设置lower-case-table-names=1不区分表名大小写问题)

CentOS7安装MySQL(8.0版本)

写在最前:自己搭来用的数据库,都用很久了,最近发现从windows版本同步过来的表结构和数据查询出问题了,查资料发现windows默认不区分表名大小写而linux默认敏感,卧了槽了,一查说配置文件里加lower-case-table-names=1就行了,结果加上服务就启不动了,找各种资料都是这个方法,很坑,然后看官方文档说只能在初始化配置,遂卸载重装,安装方法如下(若不需要配置对大小写敏感与否删掉lower-case-table-names=1即可):

一、 清理环境

1.查看系统是否安装了mysql数据库

rpm -qa | grep mysql

2.查询到已安装的MySQL后,执行以下命令依次卸载(若没有查询到,则说明没有安装Mysql库,可直接跳过此步)

yum remove mysql-xxx-xxx

3.删除MySQL的配置文件(MySQL卸载不会自动删除配置文件,需自行清理)

1)首先使用如下命令查找出所用的配置文件

find / -name mysql

2)根据需求使用以下命令 依次 对配置文件进行删除

rm -rf /var/lib/mysql

4.删除MariaDB的文件

由于 在CentOS中默认安装有MariaDB,所以如果我们不删除MariaDB文件的话,安装MySQL时可能会发生冲突。所以要删除MariaDB文件

1)使用rpm 命令查找出要删除的mariadb文件

rpm -qa | grep mariadb

2)可能出现结果:mariadb-libs-5.5.56-2.el7.x86_64,删除查询到的程序:

yum -y remove mariadb-libs.x86_64

二、安装MySQL

1.切换到/user/local目录下

[root@localhost ~]# cd /usr/local/

2.下载MySQL

[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz

3.解压MySQL

[root@localhost ~]# tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz

4.重新命名文件夹为mysql

[root@localhost ~]# mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql

5.创建data文件夹

[root@localhost ~]# cd /usr/local/mysql
[root@localhost ~]# mkdir data

6.创建用户组以及用户和密码

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -g mysql mysql

7.授权用户

[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql

8.切换到bin目录下

[root@localhost ~]# cd /usr/local/mysql/bin

9.初始化基础信息(路径根据自己的来)
注:这里必须先初始化不区分大小写(不需要可以去掉--lower-case-table-names=1),后面在配置文件中也要加,只要启动一次了再加就没用了

[root@localhost ~]# ./mysqld --user=mysql  --lower-case-table-names=1 --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize

出现以下信息便说明初始化成功:

在这里插入图片描述
得到临时密码,保存下来,后面会用到。

10.编辑my.cnf文件

[root@localhost ~]# vim /etc/my.cnf

更改为以下内容:
注:这里有个巨坑,如果需要lower-case-table-names=1这个不区分大小写的配置一开始就得加在这里,后面第一次启动后在my.conf里面配无法启动

[client]
default-character-set=utf8
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
character-set-server=utf8
collation-server=utf8_general_ci
#lower-case-table-names=1

#bitianxiang
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

注意:
  此处my.cnf如果文件不存在(存在则不需要复制),需要复制 /mysql/support-files/my-default.cnf 文件。如果my-default.cnf文件也不存在,则创建一个。

[root@localhost ~]# cd /usr/local/mysql/support-files
[root@localhost ~]# ls                 #查看my-default.cnf是否存在
[root@localhost ~]# touch my-default.cnf       #如果存在则不需要执行这一步
[root@localhost ~]# chmod 777 my-default.cnf      #如果存在则不需要执行这一步
[root@localhost ~]# cp /etc/my.cnf my-default.cnf  #复制配置文件

11.添加mysqld服务到系统

[root@localhost bin]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

12.授权以及添加服务

[root@localhost bin]# chmod +x /etc/init.d/mysql
[root@localhost bin]# chkconfig --add mysql

13.启动mysql

[root@localhost bin]# service mysql start

在这里插入图片描述
14.查看启动状态

[root@localhost bin]# service mysql status

在这里插入图片描述
15.将mysql命令添加到服务

[root@localhost bin]# ln -s /usr/local/mysql/bin/mysql /usr/bin

16.登录mysql mysql -uroot -p 密码使用之前随机生成的密码
注:这里有可能会报如下的异常信息,只需执行这个指令再往下执行即可sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
在这里插入图片描述

在这里插入图片描述

[root@localhost bin]# mysql -uroot -p

17.修改root密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';    #其中123456是新的密码自己设置

在这里插入图片描述
18.执行 flush privileges; 使密码生效

mysql> flush privileges;

在这里插入图片描述
19.选择mysql数据库修改远程连接并生效

mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> flush privileges;
mysql> exit;

20.至此,安装完成。

转载自:https://www.icode9.com/content-2-887205.html

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值