Linux下MySQL的安装和使用

目录

1、MySQL的简介... 2

2、MySQL的特点... 2

3、MySQL的下载... 2

3.1、MySQL的源码tar包下载... 2

3.2、MySQL的yum源下载... 5

4、Linux下MySQL源码安装步骤... 8

4.1、检查是否安装MySQL. 8

4.2、检查是否安装Mariadb. 8

4.3、下载... 8

4.3、安装步骤... 9

4.3.1、安装支持库libaio. 9

4.3.2、解压缩mysql的.tar.gz包... 9

4.3.3、更改解压文件名称,... 9

4.3.4、创建用户组和用户... 10

4.3.5、给mysql目录指定专有用户和用户组... 10

4.3.6、初始化mysql 11

4.3.7、新建配置文件my.cnf 11

4.3.8、关于中文乱码问题... 12

4.4、启动mysql 12

4.5、自启动配置... 12

4.6、service启动命令... 13

4.7、防火墙配置... 14

4.7.1、firewalld配置... 14

4.7.2、iptables的配置... 15

5、修改root密码... 15

6、mysql赋予root远程登录授权... 17

7、验证远程root账户登录mysql 18

8、Linux下MySQL配置用户... 21

8.1、查看目前mysql的用户... 21

8.2、删除MySQL的匿名用户... 21

8.3、插入MySQL新的用户... 21

9、Linux下创建新的database. 21

10、单独赋予database本地登录权限... 21

11、单独赋予database外网登录权限... 22

12、MySQL常用术语... 22

1、MySQL的简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品,MySQL已经被Oracle收购。

2、MySQL的特点

         MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言,MySQL软件采用了双授权政策,分为社区版和商业版,由于体积小,速度快,总体拥有成本低,尤其是开发源码这一特点,一般中小型网站的开发都选择MySQL作为网站的数据库。

3、MySQL的下载

3.1、MySQL的源码tar包下载

centos7中默认没有mysql-server的rpm包,源码安装时需要自行下载mysql的源码到自己的系统中。

         MySQL的官网地址:https://www.mysql.com/

进入MySQL的首页

Linux下MySQL的安装和使用

点击download进入下载页面

Linux下MySQL的安装和使用

Linux下MySQL的安装和使用

点击社区版Community (GPL) Downloads,进入社区版下载页

Linux下MySQL的安装和使用

点击download,进入版本选择页

Linux下MySQL的安装和使用

点击Archived versions进入历史版本存档页

Linux下MySQL的安装和使用

选择MySQL Community Server,点击进入

Linux下MySQL的安装和使用

选择好版本,选择.tar或者.tar.gz的都可以,如果是服务器不要选择test版本的。.tar包中包含有mysql-test的.tar.gz包和mysql-server的.tar.gz包,所以直接下载mysql-server.tar.gz,点击download,复制下载链接,此处下载的是mysql的源码。

Linux下MySQL的安装和使用

地址为:https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

3.2、MySQL的yum源下载

centos7中默认没有mysql-server的rpm包,所以需要yum源安装需要自行先下载你yum源到自己的系统上进行安装以后,自己的主机上才会有mysql-server的yum源。

         MySQL的官网地址:https://www.mysql.com/

进入MySQL的首页

Linux下MySQL的安装和使用

点击download进入下载页面

Linux下MySQL的安装和使用

Linux下MySQL的安装和使用

点击社区版Community (GPL) Downloads,进入社区版下载页

Linux下MySQL的安装和使用

点击MySQL Yum Repository,进入版本选择页

Linux下MySQL的安装和使用

 

点击Download

Linux下MySQL的安装和使用

点击No thanks, just start my download,进行下载

复制下载链接,此处下载的是mysql-server的yum源

Linux下MySQL的安装和使用

地址为:https://repo.mysql.com//mysql80-community-release-fc27-1.noarch.rpm

4、Linux下MySQL源码安装步骤

4.1、检查是否安装MySQL

         命令:rpm -qa|grep mysql-server

[[email protected] ~]# rpm -qa|grep mysql

Linux下MySQL的安装和使用

MySQL的默认配置文件在/etc/my.cnf

如果已安装过MySQL,是否进行升级,由需求而定。

4.2、检查是否安装Mariadb

Centos7将默认数据库mysql替换成了Mariadb

         检查mariadb命令:rpm -qa|grep mariadb

Linux下MySQL的安装和使用

         卸载mariadb命令:rpm -e --nodeps mariadb

Linux下MySQL的安装和使用

         删除/etc/目录下的my.cnf文件:rm -rf /etc/my.cnf

存在就删除。

4.3、下载

获取需要安装的mysql的版本下载链接https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

进入目录/usr/local/src/进行下载

[[email protected] src]# wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

Linux下MySQL的安装和使用

4.3、安装步骤

4.3.1、安装支持库libaio

[[email protected] mysql]# yum install libaio

Linux下MySQL的安装和使用

4.3.2、解压缩mysql的.tar.gz包

解压缩命令为:tar -zxvf 文件名 -C 目标目录

[[email protected] src]# tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz -C /usr/local/Linux下MySQL的安装和使用

解压到/usr/local/目录下

4.3.3、更改解压文件名称,

修改mysql的解压名称。

[[email protected] local]# mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql

Linux下MySQL的安装和使用

4.3.4、创建用户组和用户

创建用户组:[[email protected] local]# groupadd mysql

Linux下MySQL的安装和使用

指定mysql组创建mysql用户:[[email protected] local]# useradd -r -g mysql mysql

Linux下MySQL的安装和使用

-r表示系统用户,-s表示设置shell,这里表示禁用

为了安全性,给mysql数据库创建专有用户,该用户只能访问mysql目录,不能访问系统其它目录

4.3.5、给mysql目录指定专有用户和用户组

首先创建data目录:

[[email protected] local]# cd /usr/local/mysql

[[email protected] local]# mkdir data

Linux下MySQL的安装和使用

指定用户和用户组:

[[email protected] local]# cd /usr/local

[[email protected] local]# chown -R mysql mysql/

[[email protected] local]# chgrp -R mysql mysql/

-R包含目录下所有和目录和文件

Linux下MySQL的安装和使用

4.3.6、初始化mysql

进入mysql的解压目录下,初始化mysql

[[email protected] local]# cd /usr/local/mysql/bin

[[email protected] local]#./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

Linux下MySQL的安装和使用

一定要记住生成的临时密码,该密码用于登录的临时密码,上图中的临时密码为K9sbgdrkhp%h

注:每次安装的临时密码都是不一样的。

如果忘记密码或者想重新初始化,可以先将mysql/data目录中文件删除,然后再执行初始化命令

4.3.7、新建配置文件my.cnf

在 etc 下新建配置文件my.cnf,从5.7.17后mysql就没有默认的my_default.cnf文件,需要手动创建

[[email protected] local]# cd /etc

[[email protected] etc]# vi my.cnf

输入配置:

[mysqld]

basedir = /usr/local/mysql/

datadir = /usr/local/mysql/data

port = 3306

character-set-server = utf8

explicit_defaults_for_timestamp = true

Linux下MySQL的安装和使用

输入完成,:wq保存退出。

4.3.8、关于中文乱码问题

MySQL服务器字符集,默认情况下所采用的字符集为:

character-set-server和default-character-set

         (1)在5.1版本时,为了解决中文乱码问题,my.ini内[mysql]和[mysqld]中都写:

default-character-set=utf8

         (2)在5.5版本,[mysql]内可以写default-character-set=utf8,而[mysqld]中却不能这样写了,只能写成character-set-server=utf8

4.4、启动mysql

进入mysql的解压目录,执行启动命令

[[email protected] etc]# cd /usr/local/mysql/bin

[[email protected] bin]# ./mysqld_safe --user=mysql &

Linux下MySQL的安装和使用

完成如上图,直接回车

4.5、自启动配置

进入mysql解压目录下的support-files目录下,将mysql.server文件复制到/etc/init.d/mysql目录,并对该文件进行编辑

[[email protected] bin]# cd /usr/local/mysql/support-files/

[[email protected] support-files]# cp mysql.server /etc/init.d/mysql

[[email protected] support-files]# vi /etc/init.d/mysql

Linux下MySQL的安装和使用

将mysql目录填上:

basedir=/usr/local/mysql/

datadir=/usr/local/mysql/data/

Linux下MySQL的安装和使用

:wq保存退出

添加mysql文件的执行权限:

[[email protected] support-files]# chmod +x /etc/init.d/mysql

Linux下MySQL的安装和使用

添加系统服务:

[[email protected] support-files]# chkconfig --add mysql

Linux下MySQL的安装和使用

查看mysql的自启状态:

执行chkconfig --list mysql查看(如果2到5位的启用状态为开(on)状态即OK)

[[email protected] bin]# chkconfig --list mysql

Linux下MySQL的安装和使用

注:如果25位的启用状态有关闭的需要先执行chkconfig mysql on开启,在执行chkconfig --list mysql查询启用状态。

4.6、service启动命令

重启服务:service mysql restart

[[email protected] support-files]# service mysql restatus

Linux下MySQL的安装和使用

停止服务:service mysql stop

[[email protected] support-files]# service mysql stop

Linux下MySQL的安装和使用

启动服务:service mysql start

[[email protected] support-files]# service mysql start

Linux下MySQL的安装和使用

查看服务:service mysql status

[[email protected] support-files]# service mysql status

Linux下MySQL的安装和使用

4.7、防火墙配置

防火墙的配置分为firewalld和iptables,根据系统环境二选一。

4.7.1、firewalld配置

查看所有firewalld开通的所有端口

[[email protected] ~]# firewall-cmd --zone=public --list-ports

Linux下MySQL的安装和使用

添加3306端口

[[email protected] ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent

(--permanent永久生效,没有此参数重启后失效)

Linux下MySQL的安装和使用

重新载入

[[email protected] ~]# firewall-cmd --reload

Linux下MySQL的安装和使用

再次查看所有firewalld开通的所有端口

Linux下MySQL的安装和使用

开通成功。

关闭: systemctl stop firewalld

Linux下MySQL的安装和使用

启动: systemctl start firewalld

Linux下MySQL的安装和使用

查看状态: systemctl status firewalld

Linux下MySQL的安装和使用

4.7.2、iptables的配置

(1)编辑防火墙文件

         命令:vi /etc/sysconfig/iptables

(2)添加防火墙规则

-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

(3):wq保存退出

(4)重启防火墙

         命令:service iptables restart

5、修改root密码

进入mysql的解压目录下,登录mysql修改root密码

[[email protected] support-files]# cd /usr/local/mysql/bin

[[email protected] bin]# ./mysql -u root -p

登录:./mysql -u root -p    输入临时密码在之前记下的密码

Linux下MySQL的安装和使用

输入密码,登录成功

Linux下MySQL的安装和使用

修改密码:set password=password("mysql");此处的password("mysql")是mysql的内置函数,其中mysql是自己设置的root账户的密码

Linux下MySQL的安装和使用

修改成功

退出登录重新连接,测试修改密码

退出:exit

Linux下MySQL的安装和使用

重新登录

[[email protected] bin]# ./mysql -u root -p

Linux下MySQL的安装和使用

输入修改过后的密码

Linux下MySQL的安装和使用

登录完成,密码修改成功。

6、mysql赋予root远程登录授权

如果远程采用第三方工具navicat或sqlyog等工具进行root账户登录时,需要指定mysql服务器上的mysql数据库下的user表中的root账户的host。

(1)在服务器上登录mysql数据库

进入mysql安装目录

[[email protected] ~]# cd /usr/local/mysql/bin/

Linux下MySQL的安装和使用

登录mysql数据库

[[email protected] bin]# ./mysql -u root -p

Linux下MySQL的安装和使用

输入root账户密码,登录成功

Linux下MySQL的安装和使用

查询mysql数据库下的user表中的用户(user)和链接主机(host)

mysql> select user,host from mysql.user;

Linux下MySQL的安装和使用

修改root账户的host为任何主机(’%’)都可登录

mysql> update mysql.user set host='%' where user='root' and host='localhost';

Linux下MySQL的安装和使用

注:这里的%表示任何主机都可采用root账户登录,此处的%可以修改为指定的ip主机,如果指定了IP主机后,只能通过指定的主机才能才用root账户登录。

使修改生效:flush privileges;

Linux下MySQL的安装和使用

再次查询mysql数据库下的user表中的用户(user)和链接主机(host),验证是否修改成功。

mysql> select user,host from mysql.user;

Linux下MySQL的安装和使用

修改成功。

7、验证远程root账户登录mysql

在Linux下执行ifconfig查看运行MySQL服务器的ip地址

Linux下MySQL的安装和使用

此时可以通过MySQL的客户端工具进行连接(比如Navicat等)

(1)新建连接

Linux下MySQL的安装和使用

(2)点击Test Connection,测试链接,如图则验证成功

Linux下MySQL的安装和使用

关闭弹窗,点击OK,远程连接成功,进入数据库。

Linux下MySQL的安装和使用

8、Linux下MySQL配置用户

8.1、查看目前mysql的用户

         select user,host from mysql.user;

8.2、删除MySQL的匿名用户

(1)查看是否有匿名用户

         命令:select user,host from mysql.user;

(2)删除匿名用户

命令:delete from mysql.user where user=’’;

(3)再次查看用户

         命令:select user,host from mysql.user;

8.3、插入MySQL新的用户

命令:

insert into

mysql.user(Host,User,Password)

values(“localhost”,”yourusername”,password(“yourpassword”))

注意:mysql.user表的字段名首字母需要大写,添加的密码要使用mysql的内置函数

password(“yourpassword”)

使操作生效

         命令:flush privileges

9、Linux下创建新的database

         命令:

CREATE DATABASE `testdatabase`

DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

10、单独赋予database本地登录权限

给本地用户赋予所有权限

         命令:

grant all privileges on testdatabase.* to yourusername

@localhost identified by ‘yourpassword’;

注意:testdatabase.*表示创建的testdatabase数据库下的所有表,yourusername表示用户名,@localhost表示本地的,yourpassword表示该用户名的密码。

使操作生效

         命令:flush privileges

11、单独赋予database外网登录权限

给账号开通外网所有权限

         命令:

grant all privileges on testdatabase.* to ‘yourusername’

@’%’ identified by ‘yourpassword’;

注意:testdatabase.*表示创建的testdatabase数据库下的所有表,’yourusername’表示用户名,此处的用户名是有单引号的,@’%’表示不限制ip(也就是不限制ip开通所有权限),yourpassword表示该用户名的密码。

指定ip开通权限

grant all privileges on testdatabase.* to yourusername

@’172.17.180.112’ identified by ‘yourpassword’;

注意:testdatabase.*表示创建的testdatabase数据库下的所有表,yourusername表示用户名,@’%’表示指定ip172.17.180.112开通权限(该账户只能通过这个ip才能过进行增改查testdatabase数据库下的所有表),yourpassword表示该用户名的密码。

使操作生效

         命令:flush privileges

12、MySQL常用术语

(1)dql           表示select(查询)

(2)dml         表示insert(插入)、update(修改)、delete(删除)

(3)ddl           表示create table(操作表)、create view

(4)dcl           表示grant(赋予权限)