MariaDB安装及基本配置
MariaDB安装及基本配置(CentOS6.9)
数据库基础概念
数据库(Database, DB)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
DBMS: Database Management System, 数据库管理系统。我们平时所说的数据库其实指DBMS.
RDBMS: Relation Database Management System, 关系型数据库管理系统,其主要的概念:
1. 关系:二维表,表中的行、列次序不重要;
2. 元祖:表中的每一行,又称为一条记录
3. 属性:表中的每一列,又称为字段
4. 域:属性的取值范围
5. 主键:用于唯一确定一行的一个或多个字段
事务transaction:用户定义个一组不可分割的数据库操作序列。事务满足ACID原则:
- A: Atomicity, 原子性。事务是一个整体,这组操作要么都没做要么都做完。如果事务失败,事务中已执行完成的操作会回滚(roolback);
- C: Consistency, 一致性。与事务相关的所有数据库状态在事务提交后有一个期望值,事务执行完后所有的值都应该满足期望;如果部分满足部分不满足,说明事务是失败的,要回滚;
- I: Isolation, 隔离性。事务执行过程中,处于中间状态的数据应该对其他事务不可见;
- D: Duration, 持久性。事务一旦被提交对数据库的修改是永久性的。
MariaDB(CentOS6.9)
MariaDB是一种RDBMS,和MySQL一脉相承。
yum安装
yum源配置
yum源可以在MariaDB相关网页获取,根据自己的系统版本选择:
安装
yum install mariadb-server --enablerepo=MariaDB
# --enablerepo=MariaDB, MariaDB为使用的yum源名称
# 我是用的操作系统版本是centOS6.9,在CentOS7中还需要安装mariadb
配置
安全配置
不做安全配置,任意用户都可以用root账户登录mysql,并且不需要输入密码,这是不安全的。
# 输入当前root用户密码,刚安装完密码为空,直接回车
Enter current password for root (enter for none):
# 设置新的root账号密码
Set root password? [Y/n] y
New password:
Re-enter new password:
# MariaDB安装默认会设置一个匿名账户允许任何人登录,建议删除
Remove anonymous users? [Y/n] y
# 默认可以从远程主机使用root账户登录,建议将root账户的使用限定在本机,以确保root账户密码通过网络被获取
Disallow root login remotely? [Y/n] y
# 是否删除测试用的数据库'test',生产环境建议删除
Remove test database and access to it? [Y/n] y
# 重新加载授权表,使之前的修改生效
Reload privilege tables now? [Y/n] y
字符集配置
为了避免中文乱码的问题建议对MariaDB的,默认字符集进行设置。修改配置文件/etc/my.cnf.d/server.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
init_connect='SET collation_connection=utf8-unicode_ci'
init_connect='SET NAMES utf8'
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
其他配置
[mysqld]
datadir = /app/data # 数据文件存储位置,默认存在mysql账户的家目录
innodb_file_per_table = on # 为每个表格创建新文件
skip_name_resolve = on # 禁止主机名解析
服务
启动
$ service mysql start
# 查看服务是否成功启动,默认监听端口3306
$ ss -nlt |grep 3306
LISTEN 0 50 *:3306 *:*
# 查看进程
$ ps aux |grep mysql
root 13041 0.0 0.1 11488 1472 pts/1 S 05:31 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/centos6.9-python.pid
mysql 13225 0.0 10.0 732340 101216 pts/1 Sl 05:31 0:03 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/centos6.9-python.err --pid-file=/var/lib/mysql/centos6.9-python.pid --wsrep_start_position=00000000-0000-0000-0000-000000000000:-1
root 13267 0.0 0.3 225688 3064 pts/0 S+ 05:32 0:00 mysql
root 13646 0.0 0.0 103332 844 pts/1 S+ 06:54 0:00 grep mysql
命令行交互式客户端程序mysql
交换命令行的输入对大小写不敏感。
登录 mysql -uUserName -p
登录选项:-uUSERNAME: 用户名 ,默认为root
-hHOST: 服务器主机, 默认为localhost
-pPASSWORD:用户的密码,默认为空密码
当前状态 status
可以查看当前用户、字符集等信息。
MariaDB [mysql]> status
--------------
mysql Ver 15.1 Distrib 5.5.58-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 2
Current database: mysql
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 5.5.58-MariaDB-wsrep MariaDB Server, wsrep_25.22.r9949137
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 2 hours 3 min 21 sec
Threads: 1 Questions: 78 Slow queries: 0 Opens: 17 Flush tables: 2 Open tables: 41 Queries per second avg: 0.010
--------------
查看用户
MariaDB [mysql]> show databases; # 查看MariaDB中管理的所有数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [test]> use mysql # 选择要使用的数据库
Database changed
MariaDB [mysql]> select user(); # 查看当前用户
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
MariaDB [mysql]> select host, user, password from user; # 查看当前系统的所有账户
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| 127.0.0.1 | root | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| ::1 | root | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
+-----------+------+-------------------------------------------+
3 rows in set (0.00 sec)
MariaDB [mysql]> desc user; # 查看user表结构
+------------------------+-----------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+---------+-------+
| Host | char(60) | NO | PRI | | |
| User | char(16) | NO | PRI | | |
| Password | char(41) | NO | | | |
user表的主键包含两个字段,‘host’和‘user’,表明mysql用户账号由这两个字段唯一确定
用户授权
grant PRIVS on TABLES to USERNAME@'HOSTS' identified by 'PASSWD'; # 大写的部分是自定义的
- PRIV: 限定用户权限;all, select, insert, update, delete, create, drop, index, alter, grant, references, reload, shutdown, process, file其中一部分
- TABLES: 用户对那些表有权限
- *.* 所有库的所表
- db_name.*指定库的所有表
- db_name.tb_name: 指定库的指定表
HOSTS: 限定用户可以通过那些远程主机连接mysql,支持通配符
% 匹配任意长度的任意字符 172.16.0.0/16 等价于 172.16.%.%
_ 匹配任意单个字符
MariaDB [mysql]> grant all on *.* to python@'192.168.129.0/24' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
MariaDB [mysql]> select host, user, password from user;
+------------------+--------+-------------------------------------------+
| host | user | password |
+------------------+--------+-------------------------------------------+
| localhost | root | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| 127.0.0.1 | root | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| ::1 | root | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| 192.168.129.0/24 | python | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------------------+--------+-------------------------------------------+
4 rows in set (0.00 sec)
查看用户权限 SHOW GRANTS FOR 'user'@'host';
可以查看帮助:help show grants
示例:
MariaDB [mysql]> show grants; #显示当前用户权限
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*E74858DB86EBA20BC33D0AECAE8A8108C56B17FA' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
回收权限 REVOKE priv_type, ... ON db_name.tb_name FROM 'user'@'host
MariaDB服务进程启动时会读取mysql库中所有授权表至内存
1. GRANT或REVOKE等执行权限操作会保存于系统表中,MariaDB的服务进程通常会自动重读授权表,使之生效
2. 对于不能够或不能及时重读授权表的命令,可手动让MariaDB的服务进程重读授权表,在交换命令行中执行:FLUSH PRIVILEGES
;
服务器参数
查看变量: show [global|session] variables [like Pattern]
修改变量:set variable_assignment
variable_assignment:
user_var_name = expr
| [GLOBAL | SESSION] system_var_name = expr
| [@@global. | @@session. | @@]system_var_name = expr
示例:
MariaDB [mysql]> show variables like '%slow%';
+---------------------+--------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------------+--------------------------------------------------------------------------------------------------------------+
| log_slow_filter | admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk |
| log_slow_queries | OFF |
| log_slow_rate_limit | 1 |
| log_slow_verbosity | |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | centos6-slow.log |
+---------------------+--------------------------------------------------------------------------------------------------------------+
7 rows in set (0.00 sec)
MariaDB [mysql]> set global slow_query_log=on;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> show variables like 'slow_query_log';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| slow_query_log | ON |
+----------------+-------+
1 row in set (0.00 sec)
参考
[1] https://www.cnblogs.com/the-one/p/5554976.html 字符集配置
MariaDB安装及基本配置的更多相关文章
- mysql、mariadb安装和多实例配置
本文目录:1. mysql单实例安装 1.1 rpm安装mysql 1.2 通用二进制包安装mysql 1.2.1 初始化数据库 1.2.2 安装后的规范化操作 1.3 编译安装 1.3.1 编译安装 ...
- centos7 安装mariadb最新版并配置
打开http://mirrors.aliyun.com/,查找mariadb,然后拼装地址http://mirrors.aliyun.com/mariadb/yum打开,点开你想要的版本,选择你的操作 ...
- mariadb安装配置
CentOS 7安装MariaDB 详解以及相关配置 第一步:添加 MariaDB yum 仓库 首先在CentOS操作系统中/etc/yum.repos.d/目录下添加 MariaDB 的YUM配置 ...
- MariaDB的安装及相关配置
MariaDB的安装及相关配置 安装 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start mar ...
- centos7 Mycat/MySQL/MariaDB安装部署
使用yum安装MySQL详细步骤 安装mysql源 centos系统中不包含mysql的源,需要先安装mysql源 1.官网下载源.使用图形界面操作系统进入mysql官网,进入以下界面. 2.在Cen ...
- centos 7 mariadb安装
centos 7 mariadb安装 1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB sy ...
- 虚拟机下安装Centos7并配置Apache+PHP+Mysql+phpmyadmin+wordpress
一.安装Apache yum install httpd 安装成功后,Apache操作命令: systemctl start httpd //启动apache systemctl stop httpd ...
- Mysql MariaDB安装
1.安装 本人使用的是CentOS 7 ,默认yum安装,但默认yum安装版本有点低,可根据需要选择升级,我这里选择先升级再安装. 更新yum //更新yum包 yum -y update 配置yum ...
- LAMP环境搭建备忘 -- MariaDB 安装(三)
因为 MySQL 的一些原因,在 Linux 平台上的开源数据库渐渐被 MariaDB 取代. MariaDB 安装命令如下图 安装成功后,接下来就启动这个数据库服务 我们还需要对数据库做一些初始化的 ...
随机推荐
- dentry path_lookat dput
https://www.ibm.com/developerworks/cn/linux/l-cn-usagecounter/index.html https://blog.csdn.net/young ...
- Python:matplotlib绘制线条图
线型图是学习matplotlib绘图的最基础案例.我们来看看具体过程: 下面我们将两条曲线绘制到一个图形里: 可以看到这种方式下,两个线条共用一个坐标轴,并且自动区分颜色. plot方法的核心是 ...
- Detected problems with API compatibility(visit g.co/dev/appcompat for more info)
应用开启了debug模式导致Android 9提示如此,使用release模式即可解决.
- Jenkins: 1.x升级到2.x
停止Jenkins Service 用2.x的"jenkins.war"替换安装目录下的"jenkins.war" 启动Jenkins Service 打开je ...
- hdu-2328(暴力枚举+kmp)
题意:给你n个字符串,问你这n个串的最长公共子串 解题思路:暴力枚举任意一个字符串的所有子串,然后暴力匹配,和hdu1238差不多的思路吧,这里用string解决的: 代码: #include< ...
- CrawlSpider爬取拉钩
CrawlSpider继承Spider,提供了强大的爬取规则(Rule)供使用 填充custom_settings,浏览器中的请求头 from datetime import datetime imp ...
- robotframework基本语法一
*** Settings *** Library OperatingSystem #Settings:导入测试库,资源文件,变量文件,为创建测试套件和test cases定义元数据 *** Varia ...
- MT【271】一道三角最值问题
若不等式$k\sin^2B+\sin A\sin C>19\sin B\sin C$对任意$\Delta ABC$都成立,则$k$的最小值为_____ 分析:由正弦定理得$k>\dfrac ...
- 「AtCoder Grand018A」Getting Difference(GCD)
题目链接A - Getting Difference 题意 有n(1~\(10^5\))个数\(A_i\) (1~\(10^9\)),每次选两个数,将它们的差的绝对值加入这堆数.问k(1~\(10^9 ...
- 「POJ 1135」Domino Effect(dfs)
BUPT 2017 Summer Training (for 16) #3G 题意 摆好的多米诺牌中有n个关键牌,两个关键牌之间有边代表它们之间有一排多米诺牌.从1号关键牌开始推倒,问最后倒下的牌在哪 ...