Linux上安装MySQL


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

MySQL 最新版本是2018年4月发布的8.0,比较新,还没有大规模的使用。

所以我们建议大家目前还是先使用5.6 和 5.7版本。 这两个版本广泛使用,是非常可靠的。

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

因为企业里基本都是安装在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

如果你安装在 CentOS6 上,就执行如下命令

wget http://repo.mysql.com/mysql57-community-release-el6.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有自己的用户管理,大家不要和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' = PASSWORD('otherpassword');   
SET PASSWORD FOR 'user1'@'%' = PASSWORD('otherpassword'); 


设置开机自动运行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

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

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

阿里云防火墙

如果你的CentOS是安装在阿里云ECS上,注意打开阿里云的防火墙,如下图所示

image


好了,大功告成,打完收工 ~~


数据库管理工具


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

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

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

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

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

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

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

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

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

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

image

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

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

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

打开 HeidiSQL,打开会话管理器

image

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

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

image


作业和练习

请寻找一台安装了 CentOS 7 的 虚拟机 或者 云主机,根据本节教程,安装 MySQL5.7 .

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


扫码分享给朋友,一起学更有动力哦




上一页

下一页