CentOS7和Ubuntu18.04不同系统如何搭建mysql服务

168 阅读4分钟

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 --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

  1. 查看防火墙是否开启
systemctl status firewalld
或
firewall-cmd --state
  1. 如果防火墙是关闭状态,开启防火墙
systemctl start firewalld
  1. 防火墙添加mysql开发端口3306
[root@centos software]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success

4.防火墙配置立即生效

[root@centos software]# firewall-cmd --reload
success
  1. 查看防火墙所有开放的端口
[root@centos software]# firewall-cmd --zone=public --list-ports
3306/tcp
  1. 关闭开放端口
[root@centos software]# firewall-cmd --zone=public --remove-port=3306/tcp --permanent
success

需要重新加载防火墙配置,才能生效

firewall-cmd --reload

  1. 如果要开放的端口太多,可以直接关闭防火墙,当然,安全性自行评估
systemctl stop firewalld

扩展

  1. 查看监听的端口
netstat -lnpt
  1. 检查端口被哪个进程占用,如:
[root@centos software]# netstat -lnpt |grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      1421/java 
  1. 查看进程的详细信息
[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不同系统的搭建!!!!