需要具有sudo特权的用户帐户或root用户登录到服务器。最佳实践是以sudo用户而不是root用户身份运行管理命令,如果您的系统上没有sudo用户,点我创建一个。
默认CentOS 7存储库中不提供MySQL,因此我们将从MySQL Yum存储库中安装软件包。在以下各节中,我们将向您展示如何安装MySQL 8.0和MySQL 5.7。
在CentOS 7服务器上只能安装一个MySQL版本。如果不确定要安装哪个版本,请参阅要在服务器上部署的应用程序的文档。
目前来说,MySQL的最新版本是8.0版。要将其安装在CentOS 7服务器上,请执行以下步骤:
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
sudo yum install mysql-community-server
在安装过程中,yum可能会提示您导入MySQL GPG密钥。输入y并回车。
要在CentOS 7服务器上安装MySQL的先前稳定版本MySQL,版本 5.7,请执行以下步骤:
sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
使用yum和其他软件包一样安装MySQL:sudo yum install mysql-community-server
下面,不管是什么版本的MySQL,操作都一样的:
安装完成后,启动MySQL服务并启用以下命令使其在启动时自动启动:
sudo systemctl enable mysqld
sudo systemctl start mysqld
我们可以通过输入以下内容来检查MySQL服务状态:sudo systemctl status mysqld
首次启动MySQL服务器时,MySQL根用户会生成一个临时密码。您可以通过运行以下命令找到密码:sudo grep 'temporary password' /var/log/mysqld.log
输出应如下所示:
记下密码,因为下一条命令将要求您输入临时的root密码。
运行mysql_secure_installation命令以提高我们的MySQL安装的安全性:sudo mysql_secure_installation
输入临时密码后,将要求您为root用户设置新密码。密码长度至少为8个字符,并且至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符。
该脚本还将要求您删除匿名用户,限制root用户对本地计算机的访问并删除测试数据库。您应该对所有问题回答都是“是”(Y)。
设置root密码?[是/否] 是
删除匿名用户?[是/否] 是
禁止远程root登录?[是/否] 是
删除测试数据库并访问它?[是/否] 是
现在重新加载特权表?[是/否] 是
为了通过终端与MySQL交互,我们将使用MySQL客户端,该客户端作为MySQL服务器软件包的依赖项安装。
要以root用户身份登录到MySQL服务器,请输入:mysql -u root -p
系统将提示您输入mysql_secure_installation运行脚本时自己设置的root密码。
连接到MySQL Shell后,可以通过键入以下命令来创建新数据库:CREATE DATABASE lk_shop;
现在我们已经创建了数据库,我们可以创建一个表来存储一些数据。
在运行用于创建表的SQL语句之前,我们需要连接到数据库:use lk_shop;
在此示例中,我们将创建一个简单的表contacts,该表具有三个字段id,name和email:
CREATE TABLE contacts (
id INT PRIMARY KEY,
name VARCHAR(30),
email VARCHAR(30)
);
Query OK, 1 row affected (0.00 sec)
本文展示了如何在CentOS 7服务器上安装和保护MySQL服务器,如何连接到MySQL Shell以及如何创建新的数据库和表。
但是当你需要用自己的电脑远程登录数据库,会出现下面出错信息:
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’,
原因是没有授予相应的权限。
点我,查看如何创建MySQL用户帐户和授予权限。
记得要把所有的权限设置为所有IP可以使用或者你使用的IP可以使用。
授予权限之后可能是防火墙端口没有打开:
添加mysql端口3306:sudo firewall-cmd --zone=public --permanent --add-port=3306/tcp
,
然后再重新载入:sudo firewall-cmd --reload
。
最后,密码是你新创建的用户的密码。