当前位置: 首页 > news >正文

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

mysql8下载地址

MySQL8.0安装步骤

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

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/:

cd /usr/local/mysql80/
mkdir data

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

vim my.cnf
[mysqld]
basedir=/usr/local/mysql80/
datadir=/usr/local/mysql80/data/
port=3306
socket=/tmp/mysql80.sock
character-set-server=UTF8MB4
symbolic-links=0log-bin=/usr/local/mysql80/mysql-bin
server-id=1gtid_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

赋予执行权限

chmod 755 my.cnf

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

vim /usr/local/mysql80/support-files/mysql.server
……
# 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:

cp /usr/local/mysql80/support-files/mysql.server /etc/init.d/
mv /etc/init.d/mysql.server /etc/init.d/mysql80

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

groupadd mysql
useradd mysql -g mysql
chown mysql:mysql /usr/local/mysql80/

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

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

ps:记得保存如下图框出来位置的初始化密码,登录的时候要用这个密码登录:
在这里插入图片描述
8、启动MySQL8.0

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用户的密码

set password for 'root'@'localhost'='333333';

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

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

在这里插入图片描述

10、开放防火墙端口

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开机自启动

systemctl enable mysql80

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

http://www.lryc.cn/news/302317.html

相关文章:

  • Java-长字符串加密
  • 使用pytest单元测试框架执行单元测试
  • Flutter 中 DraggableScrollableSheet 的属性介绍与使用
  • 分库分表面试必背
  • 14个常见的Java课程设计/毕业设计合集(源码+文档)
  • 如何用 docker 部署程序?
  • 5G固定无线接入(FWA)
  • Unity ScreenPointToRay 获取到的坐标不准确
  • AJAXJSON入门篇
  • 代码随想录算法训练营29期|day54 任务以及具体安排
  • 文件操作相关工具类
  • Spring源码:手写SpringIOC
  • 【软件设计师】程序猿需掌握的技能——数据流图
  • 17.3.1 像素处理
  • 白话微机:8.解释FPGA以及一些考研面试问题
  • Kubernetes基础(十八)-k8s存储对象Persistent Volume
  • 用linux命令将文本格式文件转换为csv文件
  • C++中的binary_search函数详解
  • 程序员为什么不喜欢关电脑?我来回答
  • 波奇学Linux:动静态库
  • 1723. 完成所有工作的最短时间
  • 初始HTTP协议
  • C++ 位运算常用操作 二进制中1的个数
  • 大数据领域的数据仓库
  • sentinel的资源数据指标是如何采集
  • 算法刷题:找到字符串中所有的字母异位词
  • 【Java EE初阶十九】网络原理(四)
  • 12.23 校招 实习 内推 面经
  • FPGA转行ISP的探索之一:行业概览
  • Linux系统之部署网页小游戏合集网站