暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

Java BBS 2021-01-02
263

一、mysql/mariadb/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/yum安装

//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服务/yum安装:

//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: 数据导入工具

mylsam存储引擎的管理工具:

  
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、用户账号:

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/   选择你要安装的版本;

官方提供三种格式文件:

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

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

END





声明:JavaBBS论坛主要用于IT技术专题的交流学习,为开源技术爱好者提供广泛、权威的技术资料。若您在技术专题有更好的想法或者建议,欢迎交流!!!



推荐阅读

Recommended reading

 







JavaBBS



Git











  






https://www.javabbs.cn/git






  JavaBBS大数据






→ 






https://www.javabbs.cn





/dsj





  JavaBBS云存储






→  https://www.javabbs.cn






/ycc







  JavaBBS数据库













  https://www.javabbs.cn






/sjk







  JavaBBS云计算













  https://www.javabbs.cn






/yjs







  JavaBBSIT.Log













https://www.javabbs.cn






/itl






  JavaBBSNginx













  https://www.javabbs.cn






/ngx






  JavaBBSzabbix













https://www.javabbs.cn






/zbx






  JavaBBSJavaSE













https://www.javabbs.cn






/jse







  JavaBBS社区文章













https://www.javabbs.cn






/bwz






  JavaBBS社区资料













https://www.javabbs.cn






/bzl






文章转载自Java BBS,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论