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
- 使用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
- 使用yum命令安装MySQL
yum install mysql mysql-server mysql-devel -y
看到complete出现即安装完成
- 查看MySQL安装版本
mysql --version
可以看到MySQL安装成功,然后进行开启服务。
- 启动MySQL服务
systemctl start mysqld.service
- 查看服务 netstat
netstat -anp|grep 3306
或者
ps -ef|grep mysql
或者
systemctl status mysqld.service
MySQL服务自启动
- 检查是否为自启动
systemctl list-unit-files|grep mysqld
disable:n
enable:y
- 开启自启动
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.问题记录
- 在执行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地址
特别说一下,防火墙一开,有可能之前配置系统,很多都受到了限制,需要注意一下,打开还是关闭自己选择,不过部署网站是必须得打开的。