CentOS7和Ubuntu18.04不同系统如何搭建mysql服务
Linux安装mysql
本次安装Linux基于虚拟机CentOS7和Ubuntu18.04
一.CentOS7安装mysql
1.利用yum源来安装。mysql版本5.7.14
yum -y install mysql57-community-release-el7-10.noarch.rpm
如果出现以下错误:
这是因为yum仓库中没有可用的mysql-server rpm包,可以执行如下命令进行下载
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
下载成功:
下载mysql-server
yum -y install mysql-community-server
2.配置、启动mysql
1.查看mysql状态
systemctl status mysqld
或
systemctl status mysqld.service
2.启动mysql
systemctl start mysqld
#然后继续查看mysql状态是否启动
systemctl status mysqld
3.查看mysql初始密码
mysql默认必须修改密码之后才能操作数据库
[root@centos software]# cat /var/log/mysqld.log |grep 'password'
2020-11-23T03:24:57.885361Z 1 [Note] A temporary password is generated for root@localhost: TXgPuICyX8%k
4.登录数据库
mysql -u root -p
#然后输入默认密码 TXgPuICyX8%k
5.修改数据库登录密码
mysql> alter user 'root'@'localhost' identified by 'root';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
报错原因是密码设置过于简单,mysql有密码设置的规范
密码长度是由validate_password_length决定的,可以通过如下命令修改
set global validate_password_length=LOW;
查看mysql密码设置规范
SHOW VARIABLES LIKE 'validate_password%';
6.开启mysql的远程访问
执行下面命令开启远程访问限制(下面命令开启的是IP是10.0.105.114,如果要开启所有的,用%代替IP),mysql默认是拒绝远程访问的。
grant all privileges on *.* to 'root'@'10.0.105.114' identified by 'root' with grant option;
7.开启防火墙端口,CentOS为firewalld添加开放端口3306
查看防火墙是否开启
systemctl status firewalld
或
firewall-cmd --state
如果防火墙是关闭状态,开启防火墙
systemctl start firewalld
防火墙添加mysql开发端口3306
[root@centos software]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
4.防火墙配置立即生效
[root@centos software]# firewall-cmd --reload
success
查看防火墙所有开放的端口
[root@centos software]# firewall-cmd --zone=public --list-ports
3306/tcp
关闭开放端口
[root@centos software]# firewall-cmd --zone=public --remove-port=3306/tcp --permanent
success
需要重新加载防火墙配置,才能生效
firewall-cmd --reload
如果要开放的端口太多,可以直接关闭防火墙,当然,安全性自行评估
systemctl stop firewalld
扩展
查看监听的端口
netstat -lnpt
检查端口被哪个进程占用,如:
[root@centos software]# netstat -lnpt |grep 9200
tcp6 0 0 :::9200 :::* LISTEN 1421/java
查看进程的详细信息
[root@centos software]# ps 1421
PID TTY STAT TIME COMMAND
1421 ? Sl 1:01 /usr/java/jdk1.8.0_241/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfil
3.设置编码
vim /etc/my.cnf
增加如下代码
[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
如图:
重启mysql
保存my.conf文件后,需要重启mysql,然后输入status查看
#重启mysql
systemctl restart mysqld
登录进入mysql查看
二.Ubuntu18.04安装mysql
所有操作都是在root权限下进行
1.从apt源下载mysql-server
#默认会自行安装
apt install -y mysql-server
2.查看是否安装成功
netstat -tap | grep mysql
3.登录mysql
#默认是没有密码,直接按`enter`回车键,就可以直接进入
mysql -u root -p
4.初始化数据库
为了确保数据库的安全性和正常运行,建议进行如下5个步骤的设置
安装验证密码插件 设置root管理员在数据库中的登录密码 删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性 删除默认的测试数据库,取消测试数据库的一系列访问权限 刷新授权列表,让初始化的设定立即生效
mysql_secure_installation
5.查看mysql运行状态
service status mysql
6.设置mysql可以远程访问
#默认只允许本机访问
vim /etc/mysql/mysql.conf.d/mysqld.cnf
#注释掉 bind-address = 127.0.0.1
7.进行授权
修改完上述配置文件,再次进入mysql数据库,进行授权
#执行下面命令开启远程访问限制(下面命令开启的是IP是10.0.105.114,如果要开启所有的,用%代替IP),mysql默认是拒绝远程访问的。
mysql> grant all on *.* to root@'10.0.105.114' identified by 'root' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges; #刷新权限
Query OK, 0 rows affected (0.00 sec)
8.重启mysql
systemctl restart mysqld
9.验证本地访问远端mysql
至此已完成mysql在CentOS7和Ubuntu18.04不同系统的搭建!!!!