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后直接输入密码,会明文显示,极不安全
例:
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