ubuntu安装mysql8,debian安装mysql8,linux安装mysql8,x86_64架构,deb包

发布时间 2024-01-10 13:25:47作者: 牛奶盒

作者主页:https://www.cnblogs.com/milkbox

参考:

修改大小写:MySQL8.0安装后更改不区分大小写!包你必生效!_mysql8.0不区分大小写-CSDN博客

整个安装过程建议在root权限下进行。需要网络来下载相关依赖,如果你的系统已经存在相关以来,那么就可以离线安装。

下载与解压

去官网下载mysql8的安装包,选择好对应的版本,以mysql 8.0.35 ubuntu 22.04为例,其他版本可做参考。下载的时候选择第一个(也就是最大的那个安装包),第一个安装包里面包含除第一个以外下面所有的安装包(如果你不嫌麻烦,可以把除了第一个以外的所有安装包全部下载下来,效果是一样的)

MySQL :: Download MySQL Community Server

下载好后将安装包上传到linux服务器,位置随意,如下所示:

随便找个地方把他解压出来,执行命令:

sudo tar -xvf mysql-server_8.0.35-1ubuntu22.04_amd64.deb-bundle.tar

解压出来长这个样子:

作者主页:https://www.cnblogs.com/milkbox

安装

进入到这个目录下,执行安装命令(这个命令会加载指定路径下的所有被通配符匹配的文件,并自动处理其依赖顺序,按照正常的依赖顺序安装。注意当前目录下不要有其他非mysql相关的文件)

sudo dpkg -i ./*

如果执行这个命令出现有依赖在当前系统中不存在,可以使用如下指令进行修复(这个命令会检查当前目录下的所有deb安装包,检查其是否依赖其他文件,并自动下载其依赖的所有安装包并自动安装,然后再自动安装当前路径下的所有安装包。本篇教程仅此步骤需要服务器连接互联网)

sudo apt install -f

安装过程中会弹出三个界面,前两个是设置mysql数据库的root账号的密码与确认root的密码,可以自己设置你需要的密码(一定要记住这个密码,不然一会登不上了)。最后一个界面直接默认选择第一个选项就可以

安装完成后使用命令检查mysql的包是否已经全部安装

sudo dpkg -l | grep mysql

启动服务

先试用命令检查mysql是否已经启动(一般在安装完成后会默认启动)

sudo systemctl status mysql

如果mysql未启动,使用下面命令启动

sudo systemctl start mysql

如下界面表示启动成功

连接

注意:此时启动的mysql的使用的默认配置,默认是区分表名和字段名大小写的,如果不想区分大小写可以直接看后面的章节。

使用命令连接mysql,输入密码就是上面安装的时你设置的root密码

mysql -uroot -p

若可以成功进入数据库则证明mysql安装完成。

查看大小写配置

登入数据库,查看大小写配置

show variables like 'lower%';

如果lower_case_table_names选项的值为0则表示严格区分大小写,如果值为1则表示不区分大小写,默认值为0。(根据自己的需求进行修改)

修改大小写配置

注意:mysql8修改大小写配置必须完全重新初始化数据库才可以,所以在操作之前请备份好你的数据库。

下面将修改配置为不区分大小写

停止mysql服务

sudo systemctl stop mysql

删除mysql的数据目录

危险操作,注意备份。

这个路径在不同的mysql安装方式下可能有所差别。

这个路径存放的是mysql的数据库数据,删除这个路径会清空mysql的所有数据库,但mysql的相关配置以及安装本体不受影响,并不会卸载mysql。

这个目录必须删除才能重新初始化mysql。

sudo rm -rf /var/lib/mysql/*

修改mysql的配置文件

不同的linux发行版和不同的mysql安装方式会导致配置文件的路径不同,有的可能没有这个配置文件,如果没有,自己手动创建一个空的my.cnf放到指定路径下进行配置也可以。mysql的配置文件默认情况下可以放到好几个路径下面,具体位置可以自行查阅。

没有vim命令的可以用vi替换sudo vi /etc/mysql/my.cnf

sudo vim /etc/mysql/my.cnf

[mysqld]下面写入这一行lower_case_table_names=1,如果配置文件中没有[mysqld]那么自己写一个就可以

编辑完成后保存配置文件

执行下面命令手动初始化mysql

这一步可能会遇到一些问题,首先确保/var/lib/mysql路径存在并且有权限,确保这个路径下面没有任何文件。当然也可以自己指定一个位置。若无法解决权限问题可卸载重装mysql解决。如果/var/lib/mysql路径下有文件存在,那么mysql会拒绝初始化,请删除这个路径下的所有文件。

确保你的mysql版本是8,其他版本的初始化方式可能不同。

sudo mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql

查看日志,寻找初始化的时候为我们生成的root随机密码。

注意不同的安装方式可能会导致不同的日志位置,rpm安装方式的日志在/var/log/mysqld.log

sudo cat /var/log/mysql/error.log

可以看到,mysql默认为我们创建的root用户是没有密码的

查看mysql服务状态并启动服务(前面章节讲过)

这里可能会出现很多问题,一定要学会查看日志排查问题。sudo cat /var/log/mysql/error.log,不会的就去搜,或者问chatGPT

出现配置文件错误了,检查上面步骤修改配置文件的时候有没有写错字母

权限问题检查相关路径是否存在,是否有权限。可以使用sudo chmod 777 -R 指定的目录来修改权限

服务如果正常启动了,证明配置修改成功了,这个时候还得修改root密码才能使用

手动修改root密码

确保mysql服务已经启动,登录数据库

mysql -uroot -p

有密码的输入密码,没密码的直接回车。登录后执行sql进行修改

注意不同的mysq版本修改密码的sql也不同,如果是mysql5,可以尝试一下命令来修改密码

UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = 'root';
-- 或者
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
-- 或者
ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '新密码';
-- 或者直接设置允许远程连接
ALTER USER 'root'@'%' IDENTIFIED BY '新密码';

忘记root密码怎么办:

  1. 停止mysql服务
  2. 使用无验证方式启动mysql服务:mysqld --skip-grant-tables
  3. 在指令窗口直接输入mysql命令,敲回车。就可以登录成功
  4. 执行sqluse mysql;
  5. 执行修改 root 用户密码语句(就是普通的改密码操作)
  6. 重启mysql服务即可

mysql配置方式修改root密码

不同的mysql版本可能也不同,myslq5不确定有这个指令

sudo mysql_secure_installation

执行这个指令会提示让你进行很多配置,其中有修改root密码和是否启用root远程登录选项,可以根据自己的需求进行修改。

卸载

使用命令查看mysql的所有被安装的包

sudo dpkg -l | grep mysql

使用命令移除指定的软件包,按照mysql的依赖顺序逐个移除mysql的所有依赖

sudo dpkg -P 软件包名称

依赖顺序可使用命令查询

sudo apt-cache depends 软件包名称

卸载方式并非这一种,也可以使用aptapt-get等指令查询和卸载

安装概览

当前版本:8.0.35

安装方式:官方deb包安装

自启方式:系统服务(systemctl)控制

运行端口:3306

相关指令

不同的安装方式,指令可能不同,rpm安装方式为sudo systemctl start mysqld

# 启动
sudo systemctl start mysql

# 停止
sudo systemctl stop mysql

# 重启
sudo systemctl restart mysql

# 查看运行状态
sudo systemctl status mysql
# 或者查看进程
sudo ps -ef | grep mysql

# 本地连接
mysql -hlocalhost -P3306 -uroot -p

相关文件位置

配置文件位置:/etc/mysql/my.cnf

日志文件位置:/var/log/mysql/error.log

数据文件位置:/var/lib/mysql