检查是否有MySQL服务并卸载
检查并卸载
在安装MySQL数据库之前,我们需要先检查一下当前Linux系统中,是否安装的有MySQL的相关服务(很多linux安装完毕之后,自带了低版本的mysql的依赖包),如果有,先需要卸载掉,然后再进行安装。
A. 通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下:
rpm -qa 查询当前系统中安装的所有软件
rpm -qa | grep mysql 查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mariadb 查询当前系统中安装的名称带mariadb的软件
通过rpm -qa 查询到系统通过rpm安装的所有软件,太多了,不方便查看,所以我们可以通过管道符 | 配合着grep进行过滤查询。
通过查询发现我的contos系统中是没有的。
如果你们的系统中发现在当前系统中存在mariadb数据库,是CentOS7中自带的,而这个数据库和MySQL数据库是冲突的,所以要想保证MySQL成功安装,需要卸载mariadb数据库。
RPM:全称为 Red-Hat Package Manager,RPM软件包管理器,是红帽Linux用于管理和安装软件的工具。
B. 通过 rpm 相关指令,来卸载对应的组件,执行指令如下:
在rpm中,卸载软件的语法为:
rpm -e --nodeps 软件名称
那么,我们就可以通过指令,卸载 mariadb,具体指令为:
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
我们看到执行完毕之后, 再次查询 mariadb,就查不到了,因为已经被成功卸载了。
安装MySQL
上传MySQL安装包
我把我的MySQL压缩包放到了 /usr/local/app_local 目录中了
解压到当前目录
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
解压后的文件夹移动到 /usr/local 目录下, 并改名为 mysql
mv mysql-8.0.30-linux-glibc2.12-x86_64 /usr/local/mysqlcd /usr/local/mysql
移动
进入到MySQL安装目录
配置系统环境变量
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
重启配置
source /etc/profile
执行如下指令, 注册MySQL为系统服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
初始化数据库
#创建一个用户组, 组名就叫mysql
groupadd mysql
#创建一个系统用户 mysql, 并归属于用户组 mysql ,
useradd -r -g mysql -s /bin/false mysql
创建用户组
创建系统用户
#初始化mysql
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
如果在初始化mysql的时候,出现报错的情况也不用慌。我右解决教程
执行下面命令
yum -y install libaio
libaio包的作用是为了支持同步I/O。对于数据库之类的系统特别重要,因此在linux上安装数据库软件,就需要安装libaio
安装完 libaio之后,在次进行mysql的初始化。
执行上述指令时, 会输入如下日志,在日志中就输出了MySQL中root用户的一个临时密码【记得复制出来,记录下来】:
启动MySQL
启动MySQL服务
systemctl start mysql
通过命令, 登录MySQL
#xxxxx 代表上述生成的root的临时密码
mysql -uroot -pxxxxx
配置MySQL
修改root用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
注意: 这个root账号仅仅能够在本机localhost上访问,我们在windows上是无法访问的。如果需要在window上或其他服务器上也能远程访问,需要创建一个账号,用于远程访问的。
D. 创建账号, 并授权远程访问
#创建一个远程连接用户
CREATE USER 'root'@'%' IDENTIFIED BY '1234';#给这个用户授予全部的权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';#刷新下配置
FLUSH PRIVILEGES;
查看MySQL的用户和主机
select user,host from mysql.user;
登录测试
我在我window电脑的cmd窗口连接下
mysql -h 123.56.247.70 -uroot -p
密码 #回车
如果要是连接不上在电脑本地,可能是防火墙的问题。
最快速的方法就是关闭防火墙
systemctl stop firewalld
systemctl disable firewalld