linux安装mysql8且初始化表名忽略大小写

mysql8下载地址

MySQL8.0安装步骤

1、把安装包上传到linux系统,解压、重命名并移动到/usr/local/目录:

shell 复制代码
cd ~
tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.32-linux-glibc2.12-x86_64/ mysql80/
mv mysql80/ /usr/local/

2、在MySQL安装目录下创建存储数据库数据的新目录data/:

shell 复制代码
cd /usr/local/mysql80/
mkdir data

3、新建编辑my.cnf文件(MySQL8.0的配置文件):

shell 复制代码
[mysqld]
basedir=/usr/local/mysql80/
datadir=/usr/local/mysql80/data/
port=3306
socket=/tmp/mysql80.sock
character-set-server=UTF8MB4
symbolic-links=0

log-bin=/usr/local/mysql80/mysql-bin
server-id=1

gtid_mode=on
enforce_gtid_consistency=on
# 所有表名转换为小写字母进行比较
lower_case_table_names=1
[mysqld_safe]
log-error=/usr/local/mysql80/data/error.log
pid-file=/usr/local/mysql80/data/mysqld.pid
tmpdir=/tmp/mysql80

赋予执行权限

shell 复制代码
chmod 755 my.cnf

4、对照以下内容,修改/usr/local/mysql80/support-files/mysql.server文件:

shell 复制代码
vim /usr/local/mysql80/support-files/mysql.server
shell 复制代码
......
# mysql8安装目录
basedir=/usr/local/mysql80
# mysql8数据目录
datadir=/usr/local/mysql80/data
......
lockdir='/var/lock/subsys'
lock_file_path="$lockdir/mysql80"
......
mysqld_pid_file_path=/usr/local/mysql80/data/mysqld.pid
......
# mysql8配置文件路径
conf=/usr/local/mysql80/my.cnf
......

5、将修改之后的文件复制到/etc/init.d/目录,再将复制过去的文件重命名为mysql80:

shell 复制代码
cp /usr/local/mysql80/support-files/mysql.server /etc/init.d/
mv /etc/init.d/mysql.server /etc/init.d/mysql80

6、添加mysql用户和用户组,修改MySQL安装目录的所有者:

shell 复制代码
groupadd mysql
useradd mysql -g mysql
chown mysql:mysql /usr/local/mysql80/

7、初始化MySQL8并配置表名忽略大小写,my.cnf也要加上lower-case-table-names=1

shell 复制代码
/usr/local/mysql80/bin/mysqld --defaults-file=/usr/local/mysql80/my.cnf --user=mysql --lower-case-table-names=1 --initialize

ps:记得保存如下图框出来位置的初始化密码,登录的时候要用这个密码登录:

8、启动MySQL8.0

bash 复制代码
service mysql80 start
#登录MySQL8.0
#因为要同时安装5.7和8.0,所以要选择登录的是哪个目录下的MySQL,8.0的目录是mysql80、端口号是3307。这些内容都是在配置文件中定义的。指定本地IP是使用tcp/ip方式登录,也可以通过指定socket文件的方式登录。
#socket本地登录:
#/usr/local/mysql80/bin/mysql -S/tmp/mysql80.sock -u root -p 
#tcp/ip登录:
#/usr/local/mysql80/bin/mysql -u root -p -h 127.0.0.1 -P 3307
#可以配置直接使用 mysql80 登录:
#系统默认在 /usr/bin 目录下查找命令,所以在 /usr/bin 目录下给 mysql80 的启动程序设置一个软链接(类似Windows的快捷方式),再将软链接的名称改一下,/usr/bin/目录下8.0的mysql软链接名字改成mysql80,方便区分5.7和8.0。
ln -s /usr/local/mysql80/bin/mysql /usr/bin
mv /usr/bin/mysql /usr/bin/mysql80
#测试一下,查看安装的MySQL版本号
mysql80 -V
#登录(输入密码不显示,直接粘贴原先的初始化密码回车就行)
mysql80 -uroot -p -S/tmp/mysql80.sock

ps:mysql可能会启动失败,
Mysql报:error while loading shared libraries libtinfo.so.5的解决办法

9、修改mysql,root用户的密码

sql 复制代码
set password for 'root'@'localhost'='333333';

允许其他所有机器连接本机MySQL8.0,这样物理机的Navicat就可以连接虚拟机的MySQL8.0了,改完之后用第二条语句刷新一下权限,现在就可以在物理机上连接了:

sql 复制代码
use mysql;
update user set host='%' where user='root' and host='localhost'; #允许所有机器连接本虚拟机的MySQL
flush privileges; #刷新权限
select user,host from user;

10、开放防火墙端口

shell 复制代码
firewall-cmd --list-all #查看防火墙开放的端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanent #设置端口号3307开放
firewall-cmd --reload #重启防火墙
firewall-cmd --list-all #再次查看,可以看到3306已经开放

就可以使用Navicat等工具连接了

11、设置mysql8开机自启动

shell 复制代码
systemctl enable mysql80

本文参考:https://blog.csdn.net/qq_45855805/article/details/130015191

相关推荐
青衫码上行2 小时前
【MySQL数据库 | 第五篇】DDL操作2
数据库·mysql
Mrdaliang3 小时前
Linux系统性能优化
linux·运维·性能优化
叶子椰汁4 小时前
ORMPP链接MySQL 8.0错误
服务器·数据库·c++·mysql
舒一笑4 小时前
MySQL层级查询实战:无函数实现部门父路径
mysql
咚咚咚小柒5 小时前
SQL基础知识,MySQL学习(长期更新)
数据库·sql·mysql·database
LPH31196 小时前
Linux系统安全管理
linux·网络·安全·系统安全
linux行者6 小时前
linux基础重定向及组合重定向
linux·运维
仍然探索未知中7 小时前
MySQL数据库介绍以及安装(本地windows、Ubuntu 20.04)
数据库·mysql
kikumaru7148 小时前
Mac 安装 finalshell
linux·网络·macos
noravinsc8 小时前
django filter 筛选 取出全部用户id
数据库·mysql