NO.A.0002——mysql/mariadb5.5.65——yum安装/配置

一、1、概述:
官方网站:MySQL官网:https://www.mysql.com/
mariadb官网:https://mariadb.com/
官方文档:MySQL:https://dev.mysql.com/doc/
Mariadb:https://mariadb.com/kb/en
版本演变:MySQL:5.1(centos6.x)——>5.5——>5.6——>5.7
MariaDB:5.5(centos7.x)——>10.0——>10.1——>10.2——>10.3
MySQL版本:
MySQL Community Server 社区版本,开源免费,但不支持官方技术支持。
MySQL Enterprise Edition 企业版本,需付费可以使用30天。
MySQL Cluster 集群版,开源免费,可将几个MySQL Server封装成一个server。
MySQL Cluster CGE 高级集群版,需付费。
2、mariadb的安装方式:
源代码:编译安装
二进制格式的程序包,展开至特定路径,并经过简单配置后即可使用
程序包管理器管理的程序包;
centos下安装mariadb官方教程:https://downloads.mariadb.org/mariadb/repositories/

二、mysql/mariadb.server安装教程:

1、centos6.5下安装mysql-server
//1、查询mysql-server并安装mysql软件
[root@localhost ~]# yum  info mysql-server      //查询mysql-server安装包
Name        : mysql-server
Arch        : x86_64
Version     : 5.1.73
Release     : 8.el6_8
Size        : 8.6 M

//2、安装mysql-server程序
[root@localhost ~]# yum install -y mysql-server         
//安装centos6.x里面自带mysql-server版本,若需要新版本,可以去配置yum源,下文有配置教程
Installed:
  mysql-server.x86_64 0:5.1.73-8.el6_8                                    
Dependency Installed:
  mysql.x86_64 0:5.1.73-8.el6_8         perl-DBD-MySQL.x86_64 0:4.013-3.el6 

//3、查看mysql-server安装是否成功
[root@localhost ~]# rpm -ql mysql-server
  /etc/rc.d/init.d/mysqld                //启动文件
  /usr/libexec/mysqld                    //数据库的主程序、二进制程序
  /var/lib/mysql                         //将来存放用户数据的数据目录
  /var/log/mysqld.log                    //日志文件包
  /var/run/mysqld

//4、设置程序密码安全
[root@localhost ~]# mysql_secure_installation 

//5、设置开机自启动
[root@localhost ~]# chkconfig --list mysqld
mysqld             0:off    1:off    2:off    3:off    4:off    5:off    6:off
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig --list mysqld
mysqld             0:off    1:off    2:on    
3:on    4:on    5:on    6:off

//6、启动mysqld程序
[root@localhost ~]# service mysqld start
[root@localhost ~]# ss -tnl            //查看它的端口号
LISTEN     0      50          *:3306 

//7、查看mysql配置文件
[root@localhost ~]# ll /var/lib/mysql/              //第一次启动的时候会生成数据库文件。 
total 20488
-rw-rw---- 1 mysql mysql 10485760 Nov  5 18:04 ibdata1
-rw-rw---- 1 mysql mysql  5242880 Nov  5 18:04 ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 Nov  5 18:04 ib_logfile1
drwx------ 2 mysql mysql     4096 Nov  5 18:04 mysql
srwxrwxrwx 1 mysql mysql        0 Nov  5 18:04 mysql.sock            
//mysql.sock主要用于本地通讯
drwx------ 2 mysql mysql     4096 Nov  5 18:04 test
[root@localhost ~]# date                 //通过时间可以看出来
Thu Nov  5 18:07:13 CST 2020     

//8、利用mysql客户端工具去链接mysql数据库
[root@localhost ~]# which mysql            
/usr/bin/mysql   
[root@localhost ~]# rpm -qf /usr/bin/mysql            //属于哪个包
mysql-5.1.73-8.el6_8.x86_64

//9、mysql客户端下常用操作:
[root@localhost ~]# mysql           //默认是无密码登录,未设置密码默认无密码。
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.    
//输入“help;”或“\h”请求帮助。键入‘\c‘以清除当前输入语句。

mysql> show databases;                  //查询当前系统中所有数据库列表  
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec) 

mysql> system hostname                  //mysql下可以执行linux命令
localhost.localdomain

mysql> status                          //查看系统的状态信息
Current database:                      //当前不在任何数据库里  
Current user:        root@localhost    
//当前与数据库连接时的用户名  ,是MySQL账户自身的用户;我是在本机用root登录到数据库中

mysql> use mysql                       //切换到mysql数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

mysql> status
Current database:    mysql            //当前在mysql数据库中
Current user:        root@localhost   

mysql> \s                            //    \s也可以表示为status,是status的简写
mysql>quit                           //退出mysql客户端

2、centos7.x下安装mariadb-server服务:

//1、安装部署mariadb-server
[root@localhost ~]# yum install mariadb-server -y
 Installing:
 mariadb-server                       x86_64        1:5.5.65-1.el7      //服务器端包
Installing for dependencies:    
 mariadb                              x86_64         1:5.5.65-1.el7     //客户端包

//2、查看mysql安装路径,及部署的版本
[root@localhost bin]# which mysql
/usr/bin/mysql
[root@localhost bin]# rpm -qf /usr/bin/mysql
mariadb-5.5.65-1.el7.x86_64

//3、登录mysql客户端
[root@localhost ~]# mysql       //服务没有启动;mysql.sock文件不会生成
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘
/var/lib/mysql/mysql.sock‘
[root@localhost ~]# rpm -ql mariadb-server   //查看mariadb包含的包列表
/usr/lib/systemd/system/mariadb.service   //服务名,意外的我们后期操作时使用mariadb.service
/var/lib/mysql
/var/log/mariadb
/var/log/mariadb/mariadb.log
/var/run/mariadb

//4、启动mariad.service
[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# ss -tunlp  |grep mysqld
tcp    LISTEN     0      50    *:3306  *:*   users:(("mysqld",pid=115344,fd=14))

root@localhost ~]# pstree -p                    //mysql工作原理是基于单进程多线程
[root@localhost ~]# ll /var/lib/mysql/          //存放的就是数据库的列表
total 28700
drwx------ 2 mysql mysql     4096 Nov  5 21:56 mysql
srwxrwxrwx 1 mysql mysql        0 Nov  5 21:56 mysql.sock
drwx------ 2 mysql mysql     4096 Nov  5 21:56 performance_schema  //在内存里虚拟的数据库
drwx------ 2 mysql mysql        6 Nov  5 21:56 test         

//5、mysql数据库一般操作;
MariaDB [(none)]> show databases;               //查看支持的数据库列表
+--------------------+
| Database           |
+--------------------+|
| mysql              |

//利用复制的方法克隆一个数据库
[root@localhost ~]# cd /var/lib/mysql/          //进入到mysql数据库列表文件夹
[root@localhost mysql]# cp -a mysql mysqlclone  //克隆一个mysql数据库mysqlclone   
MariaDB [(none)]> show databases;               //此时可以看到mysqlclone数据库
+--------------------+
| Database           |
+--------------------+|
| mysql              |
| mysqlclone

注:克隆技术
//此方法也可以用作数据库备份的时候方案,一种备份手段
//但要确保数据库的一致性,数据完整性,确保同一时间点的一个文件

3、mysql数据库的常用操作:

MariaDB [(none)]> use mysqlclone                    //use把当前访问的数据库切换到目标数据库
Database changed
MariaDB [mysqlclone]> 
MariaDB [mysqlclone]> show tables;                  //查看这个数据库中有哪些表
MariaDB [mysqlclone]> select * from user;           //查询user这个表里的内容;
MariaDB [mysqlclone]> select * from user\G          //加\G表示横着往下写
MariaDB [mysqlclone]> drop database mysqlclone;     //删掉数据库mysqlclone  
Query OK, 24 rows affected (0.07 sec)
MariaDB [mysqlclone]> drop tables mysqlclone;      //删掉数据库里的表
MariaDB [(none)]> system id
uid=0(root) gid=0(root) groups=0(root)
MariaDB [(none)]> select user();                    //查看当前登录的用户
MariaDB [mysql]> select user,password,host from user;       //查看服务器中创建的用户信息
+------+----------+-----------------------+
| user | password | host                  |
+------+----------+-----------------------+
| root |          | localhost             |         //密码是空的
| root |          | localhost.localdomain |
| root |          | 127.0.0.1             |
| root |          | ::1                   |
|      |          | localhost             |
|      |          | localhost.localdomain |
+------+----------+-----------------------+
6 rows in set (0.00 sec)

4、设置mysql数据库的密码安全:

//1、执行系统自带的安全脚本
[root@localhost ~]# which mysql_secure_installation 
/usr/bin/mysql_secure_installation

[root@localhost ~]# mysql_secure_installation
Enter current password for root (enter for none):  //输入当前root账号的口令,没有口令直接回车
Set root password? [Y/n] y                              //是否设置root账号的密码
New password:                                           //新密码  
Re-enter new password:                                  //再次输入密码
Remove anonymous users? [Y/n] y                         //是否删除匿名账号
Disallow root login remotely? [Y/n] n                   //是否精致root账号远程登录
Remove test database and access to it? [Y/n] y          //是否删除测试数据库
Reload privilege tables now? [Y/n]                      //加载特权表为的就是让你刚才的设置生效

[root@localhost ~]# mysql -uroot -p123456               //登录mysql数据库
MariaDB [(none)]> use mysql
MariaDB [mysql]> select user,host,password from user;   //mysql数据库中查看用户的信息表
+------+-----------------------+-------------------------------------------+
| user | host                  | password                                  |
+------+-----------------------+-------------------------------------------+
| root | localhost             | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | localhost.localdomain | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1             | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | ::1                   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+-----------------------+-------------------------------------------+
4 rows in set (0.00 sec)
注:
//mysql下用户名是有两部分组成;user=username@host  “ root | localhost ” 这是一个账号;
//  host表示你从那台电脑上登录;
//  127.0.0.1    默认情况下登录mysql主机的ip地址,默认情况下不允许远程登录。
//  上面的4个账号都是我们本机的,远程主机是连不上来的。
//  远程主机想连到这台服务器的mysql数据库,
[root@localhost ~]# mysql -uroot -p123456 -h 192.168.1.58   
 //此时还是连不了,需要在mysql服务器上授权

5、mariadb客户端程序常用操作:
客户端程序:
mysql:交互式的CLI工具
mysqldump:备份工具,基于MySQL协议向MySQLd发起查询请求,并将查得的所有数据转换成insert等写操作语句保存文本文件中。
mysqladmin:基于mysql协议管理mysqld
mysqlimport:数据导入工具
myIsam存储引擎的管理工具:
myisamchk:检查myisam库
myisampack:打包myisam表,只读
服务器端程序:
mysqld_safe
mysqld
mysqld_multi:多实例,示例:mysqld_multi --example

//常用操作:
[root@localhost ~]# ps -aux      //可以查看到上面两个服务端程序
mysql    115182  /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql    115344   /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql

[root@localhost ~]# getent passwd mysql     //查看mysql的信息
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin     // /var/lib/mysql它的家目录;

[root@localhost ~]# rpm -q --scripts  mariadb-server  //查看它安装程序的时候以什么方式
[root@localhost ~]# which mysqld_multi      //查看该程序
/usr/bin/mysqld_multi

[root@localhost ~]# rpm -qf /usr/bin/mysqld_multi  //此程序实现多实例,
mariadb-server-5.5.65-1.el7.x86_64

5.1、用户账号:br/>mysql用户账号由两部分组成:‘USERNAME‘@HOST‘;说明:HOST限制此用户可通过哪些远程主机连接MySQL服务器
支持使用通配符:%匹配任意长度的任意字符172.16.0.0/255.255.0.0或172.16.%.%; 匹配任意单个字符
5.2、MySQL客户端使用模式:
交互式模式:可运行命令有两类:
客户端命令:\h:help \u:use \s:status !:system //MySQL客户端自身的命令,就是在数据库中 \h或者\help可以查询到的命令,都属于客户端命令,不需要加分号。
服务器端命令:SQL,需要语句结束符; //服务器端命令需要加分号。
脚本模式:
mysql -uUSERNAME -PASSWORD < /path/somefile.sql
mysql> source /path/from/somefile.sql

//创建数据库:
MariaDB [(none)]> create database testdb;
MariaDB [(none)]> show databases;
| testdb             |
MariaDB [(none)]> \! ls /var/lib/mysql      //在MySQL数据库之下执行linux命令
     testdb
MariaDB [(none)]> \! ls /var/lib/mysql/testdb
db.opt

//方法一:交互式的方法
[root@localhost ~]# cat > test.sql          //准备配置文件
create database testdb2;
show databases;
^C
[root@localhost ~]# cat test.sql 
create database testdb2;
show databases;

//方法二:以重定向的方式
[root@localhost ~]# mysql -uroot -p123456 <test.sql  
 //以重定向的方式去执行命令,相当于执行一个脚本;
Database
information_schema
mysql
performance_schema
testdb
testdb2

//方案三:以source命令去创建
MariaDB [(none)]> source test.sql
+--------------------+
| Database           |
+--------------------+
| testdb             |
| testdb2            |
| testdb3            |
+--------------------+
6 rows in set (0.00 sec)

5.3、mariadb服务器提示符更改

//mariadb服务器提示符更改:
//方案一:
MariaDB [(none)]> prompt \u@[\D] \r:\m:\s->  //更改当前的用户提示信息;一次性的,重新登入会丢失
PROMPT set to ‘\u@[\D] \r:\m:\s->‘
root@[Fri Nov  6 21:40:24 2020] 09:40:24->

//若想长期保存,需要保存到配置文件中。
//方案二:
[root@localhost ~]# ls /etc/my.cnf.d/
client.cnf              //针对全局的配置
mysql-clients.cnf       //针对MySQL这个数据库配置
server.cnf              //针对服务器的配置
[root@localhost ~]# vim /etc/my.cnf.d/mysql-clients.cnf 
prompt=(\\u@\\h) [\\d]>\(root@localhost) [(none)]>          //登录数据库查看状态

//方案三:
[root@localhost ~]# vim /etc/profile.d/mysql.sh
export MYSQL_PS1="(\u@\h) [\d]> " 
[root@localhost ~]# . /etc/profile.d/mysql.sh
(root@localhost) [(none)]>  

5.4、MySQL客户端常用选项:

MySQL客户端可用选项:
    -A      --no-auto-rehash                禁止补全
    -u      --user=                         用户名,默认是root
    -h      -- host=                        服务器主机,默认为localhost
    -p      --password=                     用户密码,建议使用-p默认为空密码
    -P      --port=                         服务器端口,
    -S      --sockt=                        指定连接socket文件路径
    -D      --database=                     指定默认数据库
    -C      --compress=                     启用压缩
    -e      --“SQL”=                        执行SQL命令
    -V      -- version=                     显示版本信息
    -v      --verbose=                      显示详细信息
    --prin-defaults                         获取程序默认使用的配置

(root@localhost) [(none)]> \s                //可以查看到当前数据库sock文件的地址
UNIX socket:        /var/lib/mysql/mysql.sock
[root@localhost ~]# mysql -uroot -p123456 -D testdb //登录时可以直接指定到testdb数据库中-D选项
(root@localhost) [testdb]> 
[root@localhost ~]# mysql -uroot -p123456 -e "show databases;" //在登录的时候执行命令  -e选项
+--------------------+
| testdb2            |
| testdb3            |
+--------------------+
 [root@localhost ~]# mysql -uroot -p123456 -V                   //查看版本信息
mysql  Ver 15.1 Distrib 5.5.65-MariaDB, for Linux (x86_64) using readline 5.1

6、mysql.sock文件信息:
socket地址:
服务器监听的两种socket地址:
ip socket:监听在tcp的3306端口,支持远程通信
unix sock:监听在sock文件上,仅支持本机通讯 如:/var/lib/mysql/mysql.sock; 说明:host为localhost,127.0.0.1时自动使用Unix sock
执行命令:
运行MySQL命令:默认空密码登录
mysql>use mysql
mysql>select use(); 查看当前用户
mysql>SELECT User,Host,Password FROM user;
登录系统: mysql -uroot -p
客户端命令: 本地执行
mysql > help
每个命令都有完整形式和简写格式
mysql> status 或 \
服务器端命令: 通过mysql协议发往服务器执行并取回结果
每个命令都必须结束符号;默认为分号
SELECCT VERSION();

[root@localhost ~]# cat /etc/my.cnf
[mysqld]                //主要存放着我们服务器端的配置
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock    
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid       //进程配置地址

[root@localhost ~]# cat /var/run/mariadb/mariadb.pid
10682                                       //只要进程起来,就会生成一个进程文件

7、服务器端配置:
服务器端(mysqld):工作特征有多种配置方式;
1、命令行选项:
2、配置文件,类ini格式
3、集中式的配置,能够为mysql的个应用程序提供配置信息
[mysqld] //服务器端配置
[mysqld_safe] //服务器端配置
[mysqld_multi] //多进程、多线程配置
[mysql] //MySQL、数据库配置;客户端
[mysqldump] //备份配置
[server] //服务器端配置
[client] //客户端配置
格式:parameter = value
说明:_和-相同
0,OFF,TRUE意义相同,1,ON,FALSE意义相同。
7.1、配置文件:后面覆盖前面的配置文件,顺序如下:(从后向前面覆盖式)

[root@localhost ~]# /etc/my.cnf       //Global选项;表示所有实例 ;我们一般写在此位置 
                            或者/etc/my.cnf.d下也可以,因为/etc/my.cnf包含/etc/my.cnf.d文件
/etc/mysql/my.cnf                    //Global全局选项        全局性的设置
SYSCONFDIR/my.cnf                   //Global选项
$MYSQL_HOME/my.cnf                  //Server-specific 选项        特定服务器的设定
--defaults-extra-file=path   
~/my.cnf                            // User-specific选项        特定用户下设定的

//获取可用参数列表:
        mysqld --help -verbose
        mysqld --print-defaults    获取默认设置

8、Mariadb配置:侦听3306/tcp端口可以在绑定有一个或全部接口IP上,
vim /etc/my.cnf
[mysqld]
skip-networking=1 关闭网络连接(远程不可以连接,只能本地连接),只侦听本地客户端,所有和服务器的交互都通过一个socket实现,socket的配置存放在/var/lib/mysql/mysql.sock)可在/etc/my.cnf修改。

[root@localhost ~]# vim /etc/my.cnf
skip-networking=1                           //在这个语句块里加上skip-networking=1重启服务
[root@localhost ~]# ss -antl                //查看此时找不到tcp的3306端口
[root@localhost ~]# mysql -uroot -p123456   //还是可以连上数据库,因为此时它不走tcp的3306端口;
                                                它走的是本地的sock文件,

三、在不同操作系统下,配置指定版本的mysql/mariadb程序:
根据官网教程,配置官网yum源地址:
1、包下载地址:https://downloads.mariadb.org/mariadb/10.2.35/ 选择你要安装的版本;
NO.A.0002——mysql/mariadb5.5.65——yum安装/配置

官方提供三种格式文件:
Source——源码
Binaries——二进制
Packages——rpm包(针对centos,Redhat,Ubuntu系列的)

2、Repository Configuration Tool.(存储库工具):
直接告诉你配置教程;YUM仓库地址:
https://downloads.mariadb.org/mariadb/repositories/#distro=CentOS&distro_release=centos7-amd64--centos7&mirror=ustc-hefei&version=10.2

NO.A.0002——mysql/mariadb5.5.65——yum安装/配置

3、安装配置:直接配置特定版本的yum源,直接安装此版本

[root@localhost ~]# vim /etc/yum.repos.d/base.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[root@localhost ~]# yum repolist            //查看yum源中是否有软件包   
[root@localhost ~]# yum install -y mariadb-server  //我们默认是linux系统源里面有mariadb,
                                            现在又配置一个mariadb源,系统默认会装最新版本的。
10.2.35-1.el7.centos            mariadb

NO.A.0002——mysql/mariadb5.5.65——yum安装/配置

上一篇:数据库连接池的原理。为什么要使用连接池


下一篇:【转】ubuntu12.04下安装chrome浏览器