千家信息网

Linux_MySQL(mariadb)数据库(2)V1.0

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,MySQL AB --> MySQLSolaris:二进制版本;www.mysql.comMariaDB: www.mariadb.orgMariaDB的特性:插件式存储引擎:存储管理器有多种实现版本
千家信息网最后更新 2024年09月22日Linux_MySQL(mariadb)数据库(2)V1.0

MySQL AB --> MySQL

Solaris:二进制版本;

www.mysql.com

MariaDB: www.mariadb.org

MariaDB的特性:

插件式存储引擎:存储管理器有多种实现版本,彼此间的功能和特性可能略有区别;用户可根据需要灵活选择;

存储引擎也称为"表类型";

(1) 更多的存储引擎;

MyISAM:不支持事务;(CentOS 6 --> 5.1.73 默认存储引擎为MylSAM红帽调整为 inndDB)

MyISAM --> Aria

InnoDB --> XtraDB 支持事物

5.5以后都支持事物

:支持事务;

(2) 诸多扩展和新特性;

(3) 提供了较多的测试组件;

(4) truly open source;真开源

MySQL的发行机制:

Enterprise:企业版

Commutiny:社区版

安装和使用MariaDB:

(1) rpm包;

(a) 由OS的发行商提供;

(b) 程序官方提供;

(2) 源码包;

(3) 通用二进制格式的程序包;(就像win上的绿色软件一样)

通用二进制格式安装注意:

1.注意版本,有的版本要求glibc版本要求

2.展开位置必须为/usr/local (tar xf MARIADB_NAME -C /usr/local)

3.要求文件名必须为mysql (一般选用软连接而不直接命名文件夹 ln -sv MARIADB_NAME mysql)

4,移动文件时注意属主数组,默认为系统用户的mysql,(chown -R root:mysql ./* )

5.创建数据存放目录 (数据库有可能未来会非常大,非测试建议独立分区,创建目录注意权限)

6,即使是二进制安装的,默认也会读取/etc/my.cnf文件 (主配置文件)

7.需独立设置配置文件时,安装包下的support-files下有配置文件模板 (cnf结尾的文件都是,适用于不同的硬件配置)

8.复制模板文件到/etc/ 或自建目录/etc/mysql/my.cnf并重命名

9.mysql是但进程多线程,而对linux而言,一个进程最多使用2.7G内存,没屌用

10.在要配置的文件中指定mysql数据库数据位置( 添加 datadir = /SOME/TO)

11.skip_name_resolve = ON

12 innodb_file_per_table = ON

13.复制安装包support-files文件中mysql.server复制到/etc/rc.d/init.d/mysqld (确认执行权限 执行chkconfig --add mysqld)

14.初始化数据库.在数据库所在路径(/usr/local/mysql) 执行 scripts/mysql_install_db --user=mysql -datadir=/mydata/data

通用二进制格式安装MariaDB:

(1) 准备数据目录;

以/mydata/data目录为例;

(2) 安装配置mariadb

# useradd -r mysql

# tar xf mariadb-VERSION.tar.xz -C /usr/local

# cd /usr/local

# ln -sv mariadb-VERSION mysql

# cd /usr/local/mysql

# chown -R root:mysql ./*

# scripts/mysql_install_db --user=mysql -datadir=/mydata/data

# cp support-files/mysql.server /etc/init.d/mysqld

# chkconfig --add mysqld

(3) 提供配置文件

ini格式的配置文件;各程序均可通过此配置文件获取配置信息;

[program_name]

配置文件生效次序查询: ~]# mysql --help

# cp support-files/my-large.cnf /etc/my.cnf

添加三个选项:

datadir = /mydata/data

innodb_file_per_table = ON

skip_name_resolve = ON

(4) 启动服务

# service mysqld start

MariaDB程序的组成:

C:Client

mysql:CLI交互式客户端程序;

mysqldump:备份工具;

mysqladmin:管理工具;

mysqlbinlog:查看mysql二进制日志

...

S:Server

mysqld

mysqld_safe:建议运行服务端程序;

mysqld_multi:多实例;

三类套接字地址:

IPv4, 3306/tcp

Unix Sock:/var/lib/mysql/mysql.sock, /tmp/mysql.sock

C <--> S: localhost, 127.0.0.1

命令行交互式客户端程序:mysql

mysql

mysql [OPTIONS] [database]

常用选项:

-uUSERNAME:用户名,默认为root;

-hHOST:远程主机(即mysql服务器)地址,默认为localhost;

-p[PASSWORD]:USERNAME所表示的用户的密码; 默认为空;

注意:mysql的用户账号由两部分组成:'USERNAME'@'HOST'; 其中HOST用于限制此用户可通过哪些远程主机连接当前的mysql服务;

HOST的表示方式,支持使用通配符:

%:匹配任意长度的任意字符;

172.16.%.%, -->172.16.0.0/16

_:匹配任意单个字符;

-Ddb_name:连接到服务器端之后,设定其处指明的数据库为默认数据库;

-e 'SQL COMMAND;':连接至服务器并让其执行此命令后直接返回;

命令:

客户端命令:本地执行

mysql> help

\u db_name:设定哪个库为默认数据库 #反斜线

\q:退出;

\d CHAR:设定新的语句结束符;

\g:语句结束标记;

\G:语句结束标记,结果竖排方式显式;

\s:查看数据库状态

服务端命令:通过mysql连接发往服务器执行并取回结果;

DDL, DML, DCL

注意:每个语句必须有语句结束符,默认为分号(;)

***********************************************

数据类型:

表:行和列 一个表可以没有行 但不能没有列 没有列不叫表

创建表:定义表中的字段;

定义字段时,关键的一步即为确定其数据类型;

用于确定:数据存储格式、能参与运算种类、可表示的有效的数据范围;

字符型:字符集

码表:在字符和二进制数字之间建立映射关系;

种类:

字符型:

定长字符型:

CHAR(#):不区分字符大小写

BINARY(#):区分字符大小写

变长字符型:

VARCHAR(#)

VARBINARY(#)

对象存储:

TEXT 文本 2^32次方格文本 4G 不区分

BLOB 区分大小写

内置类型:

SET 集合(给定abc 只能填写abc的组合)

ENUM 枚举(不如男女.星期.种类什么的)

数值型:

精确数值型:

INT(TINYINT(一个字节0-255),SMALLINT(小整型2字节),MEDIUMINT(3字节),INT(4字节),BIGINT(8))

近似数值型:

FLOAT 单精度浮点

DOBULE 双精度浮点

日期时间型:

日期型:DATE

时间型:TIME

日期时间型:DATETIME

时间戳:TIMESTAMP

年份:YEAR(2), YEAR(4)

数据类型有修饰符:

UNSIGNED:无符号;

NOT NULL:非空;

DEFAULT value:默认值;


0