ubuntu安装mysql8,debian安装mysql8,linux安装mysql8,x86_64架构,deb包
参考:
整个安装过程建议在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
解压出来长这个样子:
安装
进入到这个目录下,执行安装命令(这个命令会加载指定路径下的所有被通配符匹配的文件,并自动处理其依赖顺序,按照正常的依赖顺序安装。注意当前目录下不要有其他非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密码怎么办:
- 停止mysql服务
- 使用无验证方式启动mysql服务:
mysqld --skip-grant-tables
- 在指令窗口直接输入mysql命令,敲回车。就可以登录成功
- 执行sql
use mysql;
- 执行修改 root 用户密码语句(就是普通的改密码操作)
- 重启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 软件包名称
卸载方式并非这一种,也可以使用
apt
或apt-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