kb知识库,en英文版
在centos6上是5.1
插件是存储引擎,可以根据情况,来调换存储引擎,模块化的
mariadb的安装方法,有三种
1,源码编译安装
源码编译也有两种方式。
传统的./configrue makeinstall
还有semet
2.rpm和yum
3,二进制的格式安装,(无非就是源码编译好打包在一个目录里,我们只要解包到一个文件里,配置文件配好就可以使用
先来看比较简单的,rpm包安装
安装好可以查看以下
服务脚本名称
数据库的主程序
将来存放用户数据的,数据库所在位置
编译安装或者二进制安装你可以另外指定这个目录
设置开机启动,启动服务
3306端口已经打开
现在就可以用数据库客户端来连接了
启动,会生成数据文件
sock用于本地通讯的,unix的本机套接字
跨网络急需要tcp的套接字文件
现在可以用mysql专门的客户端工具连接了
下面就是能执行的操作命令
想知道现在系统里有没有现成的数据库,show
可以查看系统中所有的数据库列表
可以在mysql里执行linux命令或者!也是可以的
status得到系统的状态信息
use指定当前操作的数据库
改完执行用status来看一下
current user:是mysql自身的用户账号,在mysql中也有root账号
@跟上主机名,表示这个用户在那台主机上登录
status也可以用简写实现 \s
退出s
在7上的安装,7上已经变了,叫mariadb
mariadb就是客户端包
服务没启动所以socket文件没法生成
当你第一次启动的时候,会生成相关的数据库文件
服务名
mysql工作原理是基于单进程,多线程的原理的
pstree -p
登录mysql查看状态
一旦启动会生成数据库文件
这三个文件夹就是数据库文件
比centos6,mysql5.1多了一个
information_schema这个是虚拟内存的数据库,在磁盘上是看不到的
所有的文件的所属者和组是mysql
既然文件夹是数据库,能否复制一个文件夹作为数据库
在mysql数据库里,这些数据就是放在文件夹里的
以后要复制的话,也需要保证数据库每个表都在一个时间点的情况下,期间没有进行修改过
那么同一时间如何保证,因为大文件拷贝总要花费时间,
第一,把mysql服务停了(但是一旦数据库跑起来,生产中是停不下来的
安装好数据库后,好像发现任何人都能随便连接数据库
查看有多少表
显示比较乱,可以整理整理
可以换成按竖的方式显示,\G
每个字都是一列,以前的二维表都是横着
可以删除数据库
为什么王用户可以随意删除
因为默认是用root登录的
事实上,数据库没有这些账号
切换到root登录,查看用户表
user表,存的就是当前mysql数据库里的用户信息
6行,代表6条记录,代表6个用户
可以找出三个列来显示
之前用的xyz和aaa都是匿名账号,因为密码是空的,所以就随便登录
MySQL刚装好默认是不安全的
这是个系统自带的脚本
是否删除匿名账号,是的,匿名账号应该删除
是否禁用rooy远程登录,这个无所谓
一般测试库你在测试的时候随便用,实际生产的情况下就需要删除的
加载特权表,privilege特权,就是是否让之前的设置生效
完成s
之前不安全登录,都需要用密码了,匿名账号也不能登录
只要密码一样,加密起来就一样
每个用户名是用用户名和加主机加@连接起来组合而成的,所以,上面这个是4个账号,
username好理解,host就是允许你在后台哪台机器上登录,
上面4个,root是不能用远程登录的,所以mysql刚安装好也不涉及到多安全的东西
这个程序在6,7上都可以使用,起到安全的脚本,一般安装完数据库都需要安全
在别的机器上就不允许连接,因为现在只允许本地连接
mysqldump是重点要掌握的工具,备份工具,利用mysql协议,向服务器发起请求,把查询出来的结果放到文本文件里
这两个都是服务器端程序
查看mariadb在安装包的时候是否也是跑脚本的
**
-oid号可以不唯一。就是创建账号的时候,如果有这个id号,也可以创建
-M表示不创建家目录
-d 又指定了家目录路径
-N 不创建和它同名的组作为主组因为已经用-g指定主组了
确保在其他版本也是这么生成的所以加了很多选项**
也是来自服务器server包的,这个程序是用来多实例,
一个机器上这个软件跑多份,一个软件跑好几次,每一个就称为一个实例
默认都是单实例
下面是多实例
有很多都是多实例的
比如,notepad,qq
以前是把qq目录复制几份才能打开几个 实例
在一台电脑上实现主从复制,就是安装多个mysql实现多实例
有的企业安装两个版本的mysql,但是mysql默认3306,不可能两个版本都用,所以一个版本就需要用另外一个/
正则表达式的?,是代表前面的字符有一个或0个
也可以用脚本来执行
还有一种方式,把脚本稍微改下
有一个source命令
就执行成功了
客户端命令
这种是服务器端命令,就是把这个命令发送到服务器,让服务器跑一遍命令
所以服务器端命令需要加分号;。非服务器端命令不需要
更改用户的提示符,类似ps1
、临时的修改,存不住
u是用户名
D是当前日期
rms时间格式
想要保存下来,如何做,就需要修改配置文件
client客户端配置文件
client是通用客户端
mysql-clients是mysql客户端
如果是mysqlclient,刚才的是 全局,现在的是针对mysql
就可以把内容加到mysql语句块里
man sql 查看帮助
现在查看是否起作用
把当前的删除,就又恢复了
y
、
也可以用选项的来修改,但是是临时性的
还可以写一个专门的变量里
就需要写到一个配置文件里
export是环境变量
也发生变化了
mysql的客户端选项还是比较丰富的
不支持tab键补全
但是实际上是tab键可以补的,这些都是列名
默认是在这个文件夹的,如果默认文件不在这里,就需要用-S指定路径
压缩一般用于远程网络,本地不用压缩
可以删除多个数据库
-V看看当前系统是上面版本的
还可以打印程序的默认选项,如果加了什么格式都会显示出来的
如果在本机通讯就是用文件来,如果跨网络就可以指定tcp3306 的端口‘
在本机通讯省去解封装
version,数据库版本号
刚才改的是mysql客户端的配置文件
还有一个配置文件
mysqld这个语句块存放的是服务器端的配置,
只要进程起来了,就会生成一个进程文件
如果进程停的话,socket文件和pid进程文件都会自动删除的
在数据库配置里认为_ 和-是相同的
放在/etc/my.cnf是所有实例都有效
/etc/mysql/my.cnf 放在这里是全局性的设置
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf 针对特殊实例生效的
–defaults-extra-file=path 敲命令的时候,加的参数选项
~/my.cnf 针对特定用户的
也可以在这里设置,因为是包含的关系
mysql在执行的时候加了一些参数选项,可以认为是变量的值
程序找不到是因为mysqld所在的path路径尴尬
3306端口没有了为什么还能连接,是因为走的是本地的sock文件
要维护数据库就可以用这个方法,临时的让用户不能连接
删除哪一行,重启服务器,3306端口又回来了
我们设置服务器,都是在mysqld设置的,服务器和客户端配置,所以用的时候不要搞坏了