安装MySQL

MySQL 可以安装在很多操作系统上, Windows、Linux、macOS、Unix 等等。

我们这里介绍 MySQL 在 Windows 和 Linux 上的安装

Windows 上的安装

下载安装程序

MySQL在 Windows 上的安装程序 可以去官方网站下载,

也可以 点击这里链接直接下载

安装过程

具体安装过程,请点击这里,观看视频讲解

Ubuntu 上的安装配置

点击这里,看视频讲解,学习下面内容

企业里MySQL 大都是安装在Linux上面的,我们这里介绍如何安装MySQL在Linux上。


Linux 有很多发行版, 常用的有 CentOS,Redhat,Ubuntu,Debian 等,我们这里介绍如何安装 MySQL8 在 Ubuntu 20 上。

如果对Ubuntu还不熟悉,请点击这里学习我们的Ubuntu教程

首先,确保以 root 账号登录 Ubuntu 系统。

注意,我们后面的操作都是以root用户进行的,如果你没有root密码, 后续命令 都要以sudo的方式运行。

安装 MySQL Server

Ubuntu 上 安装MySQL服务非常简单,执行下面命令即可

apt install mysql-server

随后,界面提示你是否确认下载按照, 这时,你回车确认即可继续安装。

通常1分钟之内即可安装完成,并且运行MySQL服务。

安装完成后,你可以输入 systemctl status mysql 查看服务状态。


通常安装完成后,MySQL服务会自动运行,并且以后MySQL会开机自动运行。

如果将来发现MySQL服务没有运行,可以执行下面的命令,启动MySQL服务

systemctl start mysql

初始化设置

执行下面的命令进行初始化设置

mysql_secure_installation

显示如下

install VALIDATE PASSWORD COMPONENT 

选择n, 不安装


随后 ,显示如下

Please set the password for root here

这是要求你给 MySQL root用户设置密码。 注意:这里不是Ubuntu的root用户。

这时,输入一个安全性比较高的新密码,比如 Byhy123$,回车,这时系统显示如下信息要求你重新输入刚才的密码进行确认,

Re-enter new password:

再次输入刚才的密码即可。


这时系统显示如下信息
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) :

MySQL安装后有个缺省的匿名用户 anonymous, 方便测试用的, 通常会带来安全隐患,这时,我们可以选择删除该用户。

输入y并回车,即可删除anonymous用户。


这时系统显示如下信息
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) :

这是询问你是否禁止 mysql的root用户远程登录系统,如果是生产环境,通常应该禁止,输入y并回车,即可禁止。


这时系统显示如下信息
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) :

这是询问你是否删除 test 数据库。

MySQL安装好会缺省创建一个名为test的数据库,方便测试。如你不需要,可以删除,输入y并回车,即可删除。


这时系统显示如下信息
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) :

表示前面的配置是否立即生效,当然是输入y并回车,让我们的配置立即生效了。

最后显示如下信息,即表示所有前面的设置成功。

All done!

执行 命令 mysql -uroot -p ,使用root用户进入mysql命令行客户端。

界面显示如下,要求我们提供root用户密码

Enter password:

输入刚才你设置的root用户密码即可。

这时,系统显示

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

我们就可以输入sql语句命令了。

允许客户端非本机访问

我们的程序(比如后面要讲的MySQL图形界面客户端)有时是通过网络远程访问 MySQL数据库服务的。

缺省安装,mysql 不让 远程客户端通过网络连接访问,需要做如下设置方可:

  1. 修改 mysql 绑定所有网络接口

执行 vim /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address            = 127.0.0.1

改为

bind-address            = 0.0.0.0

然后重启

systemctl restart mysql.service
  1. 防火墙开端口

Ubuntu 20 缺省防火墙是关闭状态的,不需要此操作

但是,如果MySQL 所在主机Ubuntu 开了 防火墙, 需要让防火墙打开3306端口,以便外部程序可以通过网络访问。

执行如下命令,打开端口。

ufw allow 3306

CentOS 上的安装配置

点击这里,看视频讲解,学习下面内容

企业里基本都是安装MySQL 在Linux上面的,我们这里介绍如何安装MySQL在Linux上。


大家知道,Linux 有很多发行版, 常用的有 CentOS,Redhat,Ubuntu,Debian 等,我们这里介绍如何安装 MySQL5.7 在 CentOS7 上。

首先,确保以 root 账号登录CentOS系统。

注意,我们后面的操作都是以root用户进行的。


配置 yum 仓库源

在CentOS7上 如果直接执行 yum 命令 安装 mysql, 实际上安装的是 MariaDB。

我们需要先配置 yum 源使用 MySQL,这样yum工具才能从正确的 MySQL yum 仓库 下载安装MySQL。


首先,根据你的CentOS的版本 和 mysql版本下载对应 yum 仓库源安装包。

注意,如果你的CentOS上面还没有wget,执行命令 yum install wget 先安装wget

怎么检查 CentOS版本? 执行下面的命令即可

# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)

上面的例子就显示了 CentOS版本是 7.5。

既然CentOS大版本号是7,执行如下命令下载对应的yum 仓库源安装包

wget http://repo.mysql.com/mysql57-community-release-el7.rpm

接下来,我们执行下面的命令,安装下载好的rpm
rpm -ivh mysql57-community-release-el7.rpm

显示结果如下

Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql57-community-release-el7-9  ################################# [100%]

这样就配置好 mysql 的yum源了。

安装MySQL服务

既然MySQL 的 yum源已经配置好了,安装MySQL服务非常简单,执行下面命令即可

yum install mysql-server

随后,在如下界面需要你确认下载安装,

这时,你需要输入y并回车, 继续安装即可。

最后显示如下界面,表示安装成功。

启动MySQL服务

执行下面的命令,启动MySQL服务

systemctl start mysqld

如果是CentOS6,使用命令 service mysqld start

执行下面的命令查看是否启动成功

systemctl status mysqld

如果是CentOS6,使用命令 service mysqld status

如果显示结果如下

表示启动成功了。


安装好mysql5.7后,系统会自动产生一个mysql中的root用户,和初始密码。注意这不是Linux中的root用户。

要获取mysql root用户的初始密码,执行下面的命令

grep 'temporary password' /var/log/mysqld.log

你会看到类似下面的输出内容

记录下这个初始密码 ItYVhRpCc4-L (你产生的密码肯定和我的不一样) , 下面我们更新密码时,需要使用这个初始密码。

初始化设置

执行下面的命令进行初始化设置

mysql_secure_installation

显示如下

Securing the MySQL server deployment.

Enter password for user root:

这时,需要输入当前的密码,输入刚才得到的初始密码,并回车

系统显示如下内容

Change the password for root ? ((Press y|Y for Yes, any other key for No) :

输入y并回车,显示如下信息,要求你输入新密码

New password:

这时,输入一个安全性比较高的新密码,比如 Byhy123$,回车,这时系统显示如下信息要求你重新输入刚才的密码进行确认,

Re-enter new password:

再次输入刚才的密码即可。



这时系统显示如下信息
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) :

MySQL安装后有个缺省的匿名用户 anonymous, 方便测试用的, 通常会带来安全隐患,这时,我们可以选择删除该用户。

输入y并回车,即可删除anonymous用户。



这时系统显示如下信息
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) :

这是询问你是否禁止 mysql的root用户远程登录系统,如果是生产环境,通常应该禁止,输入y并回车,即可禁止。



这时系统显示如下信息
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) :

这是询问你是否删除 test 数据库。

MySQL安装好会缺省创建一个名为test的数据库,方便测试。如你不需要,可以删除,输入y并回车,即可删除。



这时系统显示如下信息
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) :

表示前面的配置是否立即生效,当然是输入y并回车,让我们的配置立即生效了。

最后显示如下信息,即表示所有前面的设置成功。

All done!

设置开机自动运行MySQL服务

数据库服务 通常应该 设置为 开机就自行启动的。 这样,即使服务器宕机了,重启后,也不需要我们手工启动数据库服务。

怎么设置 开机自动运行MySQL服务 呢?

如果你使用的是 centos 7 版本, 执行命令 systemctl enable mysqld

如果你使用的是 centos 6 版本, 执行命令 chkconfig --level 345 mysqld on

打开防火墙3306端口

我们的程序有时候是通过网络远程访问 MySQL数据库服务的。

这时,需要让防火墙打开3306端口,以便外部程序可以通过网络访问。

如果你是CentOS7的系统,执行如下两条命令,分别是 打开 mysql服务3306端口,并且使规则立即生效

firewall-cmd --zone=public --add-service=mysql --permanent
firewall-cmd  --reload

你是CentOS6的系统,执行如下命令

iptables -I INPUT -p TCP --dport 3306 -j ACCEPT;/sbin/service iptables save

添加数据库用户


点击这里,看视频讲解,学习下面内容

MySQL有自己的用户管理,大家不要和Linux系统里面的用户混淆起来,它们是两套不同的用户系统。

安装好MySQL后,缺省就有 root 用户。

MySQL的root用户是超级管理员用户,拥有操作数据库系统的所有权限。

但是我们的客户端程序,最好不要使用root用户来访问数据库,那样会使我们的系统存在安全性危险。就像我们日常操作不用超级管理员登录一样。通常,我们创建自己指定的mysql用户,来访问我们自己的数据库。

root用户,主要是用来管理数据库的。最常见的操作就是用root用户创建其他用户,并赋予他们指定的权限。

如何创建mysql数据库用户呢?

执行 命令 mysql -uroot -p ,使用root用户进入mysql命令行客户端。

界面显示如下,要求我们提供root用户密码

Enter password:

输入刚才你设置的root用户密码即可。

这时,系统显示

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

我们就可以输入sql语句命令了。


输入如下两条命令添加MySQL用户,注意命令末尾有分号。
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'Mima123$';
CREATE USER 'user1'@'%' IDENTIFIED BY 'Mima123$';

注意,这是创建用户 user1,密码为 Mima123$。 根据你的需求使用不同的用户名密码。

为什么创建一个用户要用两条命令?

@符号后面的 ‘localhost’ 表示该用户可以从localhost或者127.0.0.1地址连接访问数据库,也就是从本机访问数据库

@符号后面的 ‘%’ 表示该用户可以从其它IP地址连接访问数据库。



随后输入如下命令,赋予user1用户所有权限,就是可以 该DBMS系统上 访问所有数据库里面所有的表
GRANT ALL ON *.* TO 'user1'@'localhost';
GRANT ALL ON *.* TO 'user1'@'%';

如果你只想赋予 user1用户,只能读取数据库mydb的表table1 的权限,就可以这样写

GRANT SELECT  ON mydb.table1 TO 'user1'@'localhost';
GRANT SELECT  ON mydb.table1 TO 'user1'@'%';

关于用户权限赋予,更多说明参考官方文档


最后,输入 quit 并回车,退出mysql命令行客户端。


如果以后你想修改该用户的 密码,可以执行下面的 命令

SET PASSWORD FOR 'user1'@'localhost' = 'otherpassword';   
SET PASSWORD FOR 'user1'@'%' = 'otherpassword'; 

图形界面管理工具


点击这里,看视频讲解,学习下面内容

数据库服务系统DBMS 存在的意义,就是 让应用程序访问里面的数据的。

应用程序通常使用DBMS里面的 数据库 进行业务数据的 读取、修改、删除。 比如淘宝、12306等。

为了方便管理员查看数据库,有种特殊的 应用程序, 就是 数据库管理工具, 它没有什么业务要完成,就是方便管理员直接查看管理数据库里面的数据的

前面我们已经使用过一个 数据库管理工具 来访问 数据库服务了,就是执行 命令 mysql -uroot -p ,打开的mysql命令行客户端。

但是那个命令行查看数据比较麻烦,要自己手动敲 SQL 语句。

我们可以使用图形界面的 管理工具。

MySQL 的图形界面管理工具 比较多,这里推荐一款轻量级的工具 HeidiSQL。

该工具是安装在Windows上的。如果你是苹果电脑或者Linux电脑,请先安装Wine,再安装HeidiSQL

大家可以点击这里打开下载页面

image

点击上图箭头处,下载安装。

下载好了以后,我们就可以通过它来连接管理数据库了。

首先,需要连接到数据库服务。

打开 HeidiSQL,打开会话管理器

image

如上图所示,填入数据库服务的地址,用户名、密码、端口, 然后点击打开。

这样就可以查看连接的DBMS系统上的 数据库、表、和数据了。

image


作业和练习

请根据本节教程,安装 MySQL 在 Windows 或者 Linux上。

安装完成后,使用数据库客户端工具 远程连接 MySQL 服务。

您需要高效学习,找工作? 点击咨询 报名实战班

点击查看学员就业情况

上一页
下一页