跳转至

安装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:

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


!!!这边特别要注意 如果是新版本 MySQL, 界面可能会出现如下错误提示:

  ...Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' 
  as the authentication method used doesn't store authentication data in the 
MySQL server. Please consider using ALTER USER instead if you want to change 
  authentication parameters.

New password: 

这时需要 按 CTRL C 退出当前操作

然后,执行命令 mysql 进入mysql命令行

执行如下命令,直接就可以设置root密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Byhy123$';


然后就可以不再执行 mysql_secure_installation 了,

因为执行 mysql_secure_installation 的主要目的就是为了设置root密码


如果你除了设置密码,还想进行其它设置,可以再重新执行 mysql_secure_installation 进行操作

重新执行后, 会问你是不是要修改root密码

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

可以选择n, 不修改


接下来系统显示如下信息

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

添加数据库用户


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

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

安装好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


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

点击查看学员就业情况