Linux 上部署MySQL,记录


Linux部署MySQL

  • 一、下载与安装
    • MySQL服务自启动
  • 二、MySQL创建密码并登录
    • 1. 设置密码
    • 2. 用创建的账户密码进行登陆
    • 3. 登录成功,SQL命令进行查看
    • 4. 然后进行数据库创建等等等。
    • 5. 有时候需要修改密码,用到以下指令
    • 6.问题记录
  • 三、卸载MySQL
    • 1. 查看安装的MySQL rpm包
    • 2. 找到所有的mysql目录 并删除
    • 3. 删除MySQL配置文件
    • 4. 删除mysql的密码
    • 5. 再重新安装mysql时报:mysql rpm conflict_Error: mysql57-community-release conflicts with mysql-community-release-el6-5.noa...
  • 四、开启远程访问数据库
    • 1. 设置远程连接虚拟账户和密码
    • 2. 开启远程访问权限
    • 3. 刷新一下
    • 4. 设置防火墙,开放3306端口
    • 防火墙配置
      • 1. 查看防火墙状态
      • 2. 开启防火墙并再次查看状态
      • 3. 查看防火墙开放的端口
      • 4. 开放、关闭某个端口
      • 5.关闭防火墙命令
      • 6.防火墙自启动!!!(重要)
    • 5. 配置MySQL监听
    • 6. 重启MySQL
    • 7. 去本地客户端连接远程服务
    • 8. 有的还需要配置MySQL监听

一、下载与安装

环境:Linux centos8.4

  1. 使用wget命令在https://repo.mysql.com/下载相应Linux版本的社区版MySQL rpm包

在这里插入图片描述

cd /tmp
wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm

(centos8,其他版本后面会出错哦,比如centos7.4使用 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm)

在这里插入图片描述

安装rpm包

rpm -ivh mysql80-community-release-el8-1.noarch.rpm

在这里插入图片描述

  1. 使用yum命令安装MySQL
yum install mysql mysql-server mysql-devel -y

在这里插入图片描述

看到complete出现即安装完成

  1. 查看MySQL安装版本
mysql  --version

可以看到MySQL安装成功,然后进行开启服务。

  1. 启动MySQL服务
systemctl start mysqld.service 
  1. 查看服务 netstat
netstat -anp|grep 3306

在这里插入图片描述

或者

  ps -ef|grep mysql

在这里插入图片描述

或者

systemctl status mysqld.service

在这里插入图片描述

MySQL服务自启动

  1. 检查是否为自启动
systemctl list-unit-files|grep mysqld

在这里插入图片描述

disable:n
enable:y

  1. 开启自启动
systemctl enable mysqld.service

二、MySQL创建密码并登录

1. 设置密码

mysqladmin -u [username] password [password]

在这里插入图片描述

2. 用创建的账户密码进行登陆

mysql -uusername -ppassword

3. 登录成功,SQL命令进行查看

show databases;

在这里插入图片描述

4. 然后进行数据库创建等等等。

5. 有时候需要修改密码,用到以下指令

mysql8.0 修改密码,同时也可以修改远程账户密码(看了很多设置或者更新password是不可行的,8.0 user表里无这个字段,还是用下列语句更新密码最好)

 alter user "username" @"localhost" identified with mysql_native_password by "newpassword"
  • @后面跟的是host字段,也就是访问主机字段,host = ‘192.168.1.%’,IP地址前缀为“192.168.1.”的客户端都可以连接,host =’ %’ 代表任何主机,所以IP都有连接权限。
  • % 不能代表localhost、127.0.0.1,host = ‘localhost’,表示本地才能登录
  • host是创建用户时指定的,根据ip访问需求创建

6.问题记录

  1. 在执行systemctl start mysql.service时会出现:mysql.service: Unit mysql.service not found.
    翻译一下:

在这里插入图片描述

可能出现的原因:

  • Linux命令版本不一样,可以使用systemctl start mysqld.service 试试

  • 下载的·MySQL版本与Linux不匹配

三、卸载MySQL

1. 查看安装的MySQL rpm包

 rpm -qa | grep -i mysql 

在这里插入图片描述
rpm -e + 文件名 - - 删除这些rpm包
或者 rpm -e --nodeps + 文件名 - - 强制删除这些rpm包

2. 找到所有的mysql目录 并删除

 find / -name mysql 

3. 删除MySQL配置文件

rm -rf /etc/my.cnf

4. 删除mysql的密码

rm -rf /root/.mysql_sercret

5. 再重新安装mysql时报:mysql rpm conflict_Error: mysql57-community-release conflicts with mysql-community-release-el6-5.noa…

rpm包冲突,说明之前卸载没有删干净rpm包,
解决办法:

见 【卸载mysql】步骤第一步进行删除,删除完之后就能进行重新安装了

四、开启远程访问数据库

有云服务器的可以开启远程服务,远程对服务端数据库进行访问

1. 设置远程连接虚拟账户和密码

首先进入MySQL(进入MySQL就与SQL命令有关,以下命令可以参考MySQL安全管理篇),设置创建一个远程连接虚拟账户和密码

create user 'username'@'%' identified by 'yourpassword'; 

在这里插入图片描述

rename user username to newname;  #重命名
drop user name ;  # 删除用户账号

2. 开启远程访问权限

grant all privileges on *.* to "username"@"%";

所有远程主机都能访问

在这里插入图片描述

3. 刷新一下

flush privileges;

4. 设置防火墙,开放3306端口

然后退出MySQL,设置防火墙,开放3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

如果没有开启防火墙,则会显示

在这里插入图片描述

防火墙配置

1. 查看防火墙状态

systemctl status firewalld

在这里插入图片描述

2. 开启防火墙并再次查看状态

systemctl start firewalld.service
systemctl status firewalld
或者
service firewalld start  
firewall-cmd --state

在这里插入图片描述

在这里插入图片描述

3. 查看防火墙开放的端口

firewall-cmd --zone=public --list-ports

4. 开放、关闭某个端口

开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent  
关闭3306端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
重新加载刷新
firewall-cmd --reload  

在这里插入图片描述

5.关闭防火墙命令

systemctl stop firewalld.service

6.防火墙自启动!!!(重要)

#查看防火墙是否自启动
systemctl list-unit-files|grep firewalld
#开启防火墙自启动
systemctl enable firewalld.service

接着继续MySQL远程配置

5. 配置MySQL监听

6. 重启MySQL

systemctl restart mysqld.service

7. 去本地客户端连接远程服务

在这里插入图片描述

连接成功! 至此MySQL部署成功!

8. 有的还需要配置MySQL监听

vi /etc/my.cnf #编辑MySQL配置文件
在里面添加: bind-address=0.0.0.0

/etc目录:etc 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
bind-address:是MYSQL用来监听某个单独的TCP/IP连接
0.0.0.0 :表示 接受所有的IPv4地址


特别说一下,防火墙一开,有可能之前配置系统,很多都受到了限制,需要注意一下,打开还是关闭自己选择,不过部署网站是必须得打开的。

Logo

更多推荐