本文主要介绍在Linux环境安装MySQL的5种方法,其中包括离线使用RPM安装MySQL、使用YUM源安装指定版本的MySQL、一键式傻瓜安装MySQL、免安装压缩包方式等。
官网mysql community版本下载连接:点击这里
如果你的Linux可以连接外网,并且可以使用
wget
这种方式下载,可以跳过第2步。
你在第一步所下载的安装包名字类似于:mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
你可以使用FileZilla或者WinSCP等工具移动安装包到VM服务器中(过程略)。
tar -xvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
必须安装的rpm包有:
使用rpm命令
进行安装(因为package有依赖关系,安装时注意顺序)
rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm
安装过程图下图:
my.cnf
文件(可选项,如果不需要可跳过)在完成上述4步骤后,会在/etc/
下创建my.cnf文件
以及my.cnf.d文件夹
,如果有需要需要配置该文件。
在mysql启动初始化前,一定要确认根据自己所需的MySQL参数,是否需要修改my.cnf文件,比如区分表名大小写,在MySQL8.0之前,是可以在mysql启动后进行重新修改的,但是8.0之后,只能在MySQL启动前进行配置,所以强烈建议,在第一次初始化启动MySQL前,先进行配置my.cnf
依次执行命令:
# 初始化mysql
mysqld --initialize
# 获取密码
grep "password" /var/log/mysqld.log
执行情况如下图:
如果执行初始化过程中出现错误,可执行
tail -100f /var/log/mysqld.log
查看错误日志log。
如果直接使用系统默认的my.cnf
文件,没有进行任何修改,建议使用如下命令进行初始化:
# 使用user用户,并忽略表名大小写进行初始化
mysqld --initialize --user=mysql --lower_case_table_names=1
执行命令启动MySQL服务
systemctl start mysqld
命令执行如下图:
使用默认密码登陆后,需要强制修改初始化默认的登陆密码,不然会出现如下错误:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
使用如下命令修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '******';
FLUSH PRIVILEGES;
修改密码后现在就可以正常的去操作了。
依次执行下列SQL进行修改允许
-- 远程设置
USE mysql;
UPDATE mysql.user SET host = '%' WHERE user = 'root';
SELECT user, host, plugin, authentication_string FROM mysql.user;
FLUSH PRIVILEGES;
安装MySQL之后,默认为不自启,需要手动开启
# 查看MySQL是否自启
systemctl is-enabled mysqld
# 开启自启
systemctl enable mysqld
# 关闭自启
systemctl disable mysqld
# 永久开放3306端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
# 重启防火墙
systemctl restart firewalld
# 检测设定是否生效
iptables -L -n | grep 3306
1.1 官网下载连接:点击这里
1.2. 进入到下一步页面,点击下载
如果你的Linux可以连接外网,并且可以使用
wget
这种方式下载,可以跳过第2步。
你在第一步所下载的安装包名字类似于:mysql80-community-release-el8-4.noarch.rpm
你可以使用FileZilla或者WinSCP等工具移动安装包到VM服务器中(过程略)。
通过如下命令安装mysql的yum源:
sudo yum -y install mysql80-community-release-el8-4.noarch.rpm
该命令执行完成后,会在/etc/yum.repos.d/
目录下创建一个mysql-community.repo
文件,这就是mysql的yum源。当然你也可通过命令的方式查看mysql的yum源是否安装成功。
yum repolist enabled | grep "mysql.*-community.*"
4.1 编辑yum源文件
由于下载的yum源文件默认开启的是安装mysql的最高版本。如果你想安装低版本的mysql,则需要对mysql的yum源文件进行修改,具体为修改/etc/yum.repos.d/mysql-community.repo
文件。把mysql8.0安装源设置为enabled=0
,而指定的mysql8.0.15
小版本安装源设置为enabled=1
。如果没有,就copy一份,修改baseurl和enable。同理,如果你想安装mysql5.7
也一样
vim /etc/yum.repos.d/mysql-community.repo
上述配置文件中的baseurl即为yum源的远程仓库地址,也可以直接访问下面的网址,进行点击查看安装源http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/
4.2 验证修改(不出现错误,验证成功)
yum repolist enabled | grep mysql
yum search mysql --showduplicates
执行如图所示,可以看到,当前yum源可以支持安装如下的所有历史版本
修改完成之后执行如下命令进行安装:
注意该命令默认会安装当前配置的yum源的最高版本,如果需要指定具体的小版本,请执行后面命令
yum install mysql-community-server
可以将下面命令中的8.0.15替换成你上面第5步中的任何历史版本
sudo yum install mysql-community-{server,client,common,libs}-8.0.15-*
安装如图所示,可以看到完成安装后,执行mysqladmin --version
查看到最终安装的MySQL版本
参照本文上面的 基于 RPM 包进行安装 中步骤:5~12 即可,本文不再赘述。
**如果你不关心具体的版本,只想直接安装最新的版本的MySQL,步骤如下
sudo yum -y install mysql-server
参照本文上面的 基于 RPM 包进行安装 中步骤:5~12 即可,本文不再赘述。
使用下面命令可以查看已经安装的mysql
rpm -qa | grep mysql
或命令
yum list installed | grep mysql
可以使用下面命令,卸载使用yum安装的MySQL
yum -y remove mysql80-community-release.noarch
sudo yum -y install mysql-server
yum search mysql --showduplicates
执行如图所示,可以看到,当前yum源可以支持安装如下的所有历史版本
本文主要主要介绍初始安装MySQL,如果你的数据库里已经有自己的数据,那么降级前请做好备份。
测试机器已经安装了 MySQL 8.0.15版本,本示例是从8.0.15
降级到8.0.12
版本
执行降级安装命令
在命令中的版本,即为你想降级的版本号,该版本号在上述第2步骤历史版本中查看所得。
yum downgrade mysql-community-server-8.0.12-1.el7.x86_64
降级安装过程如图所示:
参照本文上面的 基于 RPM 包进行安装 中步骤:5~12 即可,本文不再赘述。
重新登陆MySQL,可以看到版本已经降级到指定的8.0.12版本。
这种方法类似在Windows操作系统里直接下载的免安装软件,下载即用。Linux中也同样有这种免安装包,但是Linux中需要进行一些配置。
官网mysql community版本下载连接:点击这里
如果你的Linux可以连接外网,并且可以使用
wget
这种方式下载,可以跳过第2步。
你在第一步所下载的安装包名字类似于:mysql-8.0.15-el7-x86_64.tar.gz
你可以使用FileZilla或者WinSCP等工具移动安装包到VM服务器中(过程略)。
mysql
用户和用户组sudo groupadd mysql
sudo useradd mysql -r -g mysql -M -s /sbin/nologin
# 下列各路径可以根据所需自行更改位置
sudo mkdir -p /data/logs/mysql/
sudo mkdir -p /data/mysql/data/
sudo mkdir -p /data/tmp/mysql/mysql-tmp0
sudo mkdir -p /data/tmp/mysql/mysql-tmp1
# 存放MySQL套接字文件目录
sudo mkdir -p /var/lib/mysql/
#1、 授权data数据目录给mysql用户
sudo chown -R mysql:mysql /data/mysql/
#2、 授权log目录给mysql用户
sudo chown -R mysql:mysql /data/logs/mysql
#3、 授权临时目录给mysql用户
sudo chown -R mysql:mysql /data/tmp/mysql
#4、授权套接字文件目录给mysql用户
sudo chown -R mysql:mysql /var/lib/mysql/
sudo yum -y install perl.x86_64
sudo yum -y install libaio.x86_64
sudo yum -y install net-tools.x86_64
/usr/local/
下sudo tar -xzvf mysql-8.0.15-el7-x86_64.tar.gz -C /usr/local
sudo mv mysql-8.0.15-el7-x86_64/ mysql
上述的4.1和4.2也可以直接使用下面一条命令,具体命令含义自行查找学习,也可以私信我。
sudo mkdir /usr/local/mysql && sudo mysql-8.0.15-el7-x86_64.tar.gz -C /usr/local/mysql --strip-components 1
执行完结果如图:
解压开mysql内部文件:
根据所需,需要创建适合自己的my.cnf
文件,放置于/etc/
下,也可以根据自身所需,修改放置路径。
这里提供一个模板做为参考:https://github.com/bluetata/my.cnf
为了方便执行mysql的命令,创建如下软连接到系统bin和sbin下
sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
sudo ln -s /usr/local/mysql/bin/mysqld /usr/sbin/mysqld
sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
将MySQL添加到系统服务,这样就可以使用systemctl来控制MySQL服务了
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/rc.d/init.d/mysqld
修改了配置,需要重新加载,再尝试通过systemctl启动mysqld.service
systemctl daemon-reload
profile
文件sudo vim /etc/profile
profile
文件中最后面 追加下面配置# MySQL environment variables
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
profile
文件source /etc/profile
mysqld --initialize --user=mysql --lower_case_table_names=1
注意初始化的密码存放在你在my.cnf中配置的error log文件中
# 获取密码
grep password /data/logs/mysql/mysql_error.log
执行命令启动MySQL服务
systemctl start mysqld
执行启动后如图所示,可以看到mysql正常启动,并且一些参数为我们之前配置的:
参照本文上面的 基于 RPM 包进行安装 中步骤:8~12 即可,本文不再赘述。
注:本文原创由
bluetata
发布于: https://bluetata.blog.csdn.net/ 转载请务必注明出处。