Mariadb的安装

CentOS7上使用rpm包直接安装Mariadb

CentOS6上使用通用二进制格式安装:

1、准备好二进制格式包和数据目录(数据库应该有单独的数据存储目录,最佳的方式是存放在单独挂载的磁盘分区上,这样便于管理和备份)。

  二进制包:mariadb-5.5.46-linux-x86_64.tar.gz

  数据目录:/mydata/data

2、解压并配置mariadb

[root@localhost ~]# groupadd -r -g 306 mysql // 创建mysql系统组以及mysql系统用户
[root@localhost ~]# useradd -r -g 306 mysql
[root@localhost ~]# tar xf mariadb-5.5.46-linux-86_64 -C /usr/local // 解压后展开必须在/usr/local下
[root@localhost ~]# cd /usr/local
[root@localhost local]# ln -sv mariadb-5.5.46-linux-86_64 mysql // mariadb的目录必须名为mysql
[root@localhost local]# cd mysql
[root@localhost mysql]# chown -R root:mysql ./* // 将mysql目录中的所有目录及文件的属主和属组分别改为root和mysql
[root@localhost mysql]# scripts/mysql-install_db --datadir=/mydata/data --user=mysql
// 使用初始化脚本将初始化数据存放到指定的数据目录/mydata/data下
// --datadir= :指定数据目录
// --user= :指定以什么用户安装
[root@localhost mysql]# cp supper=files/mysql.server /etc/rc.d/init.d/mysqld
// 复制服务脚本到init.d目录下

3、准备配置文件

配置格式:类ini格式,为各程序均通过单个配置文件提供配置信息;

配置文件查找次序:

/etc/my.cnf --> /etc/mysql/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf

[root@localhost ~]# mkdir /etc/mysql 
[root@localhost ~]# cp support-files/my-large.cnf /etc/mysql/my.cnf
[root@localhost ~]# vim /etc/mysql/my.cnf
> datadir = /mydata/data
> innodb_file_pertable = on
> skip_name_resolve = on

4、启动服务

[root@localhost mysql]# service mysqld start
[root@localhost mysql]# ss -tnl

5、修改环境变量(否则启动客户段程序只能在绝对路径下执行)

[root@localhost ~]# vim /etc/profile.d/mysqld.sh
> export PATH=/usr/local/mysql/bin:$PATH
[root@localhost ~]# source /etc/profile.d/mysql.sh

6、安全初始化mysql

由于mariaDB初次安装,root用户是空密码,并且还有空密码的匿名用户,这都是极其危险的,需要进行处理

[root@localhost ~]#/usr/local/mysql/bin/mysql_secure_installation
Enter current password for root (enter for none):   // 输入当前mysql数据库的root密码,初始为空
Set root password? [Y/n] y  // 询问是否设置新的root密码
New password:               // 输入新的root密码
Re-enter new password:      // 确认信的root密码
Remove anonymous users? [Y/n] y  //询问是否移除匿名用户
Disallow root login remotely? [Y/n]  // 询问是否禁止root用户远程登录
Remove test database and access to it? [Y/n] n  // 询问是否删除测试数据库
Reload privilege tables now? [Y/n] y   // 询问是否刷新权限表
[root@localhost ~]#


MariaDB的程序组成:

服务器端程序:

  /usr/local/mysql/bin

   mysqld,而一般情况下运行的则是mysql_safe,可使用ps aux | grep myqld查看

   mysql_multi为多实例运行,运行多个mysql进程,使用不同的端口,类似于httpd的vhost


客户端程序:

  /usr/local/mysql/bin/
   mysql:命令行式的客户端

   mysqladmin :mysql远程管理工具

   mysqlbinlog :mysql日志管理工具

   mysqldump

服务器监听的两种socket地址:

  ip socket:监听在tcp的3306端口,支持远程通信;

  unix sock:监听在sock文件上(二进制安装/tmp/mysql.sock,rpm包安装/var/lib/mysql/mysql.sock),仅支持本地通信,即客户端和服务器在同一个主机上,只能基于127.0.0.1的方式通信。

    server:localhost,127.0.0.1


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

交互方式:

mysql

  -uUSERNAME:用户名,默认为root

  -hHOST:服务器主机,默认为localhost

  -pPASSWORD:用户的密码,默认为空密码,一般使用为-p后直接回车,然后输入密码登陆,如果在-p后直接输入密码,会明文显示,极不安全

例:

Mariadb安装和简析_安装

  NOTE:mysql用户账号由两部分组成:'USERNAME'@'HOST',其中HOST用于限制此用户可通过哪些主机远程连接mysql服务。

  支持使用通配符:

    %:配置任意长度的任意字符

      172.16.0.0/16,172.16.%.%

    _:匹配任意单个字符

交互命令分类:

  客户端命令:通过mysql协议发往服务器执行并取回结果 

  例: 

MariaDB [(none)]> help
MariaDB [(none)]> status

  服务端命令:本地执行,每个命令都必须有命令结束符号;默认为分号;

  例:

MariaDB [(none)]> SHOW DATABASES;


关系型数据库的常见组件:

  数据库:database

  表:table

   行:row

   列:column

  索引:index

  视图:view

  用户:user

  权限:privilege

  

  存储过程:procedure

  存储函数:function

  触发器:trigger

  事件调度器:event scheduler