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: 用户对那些表有权限 
  1. *.* 所有库的所表
  2. db_name.*指定库的所有表
  3. db_name.tb_name: 指定库的指定表
  • HOSTS: 限定用户可以通过那些远程主机连接mysql,支持通配符

  1. % 匹配任意长度的任意字符 172.16.0.0/16 等价于 172.16.%.%

  2. _ 匹配任意单个字符

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 字符集配置





转载于:https://www.cnblogs.com/wadirum/p/7978776.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装MariaDB的步骤如下: 1. 首先,根据你的需求选择合适的源进行安装,有官方源和阿里源两种可选。如果选择官方源,可以使用以下命令安装: ``` yum install -y MariaDB-server MariaDB-client ``` 如果选择阿里源,可以使用以下命令安装: ``` yum install -y mariadb-server mariadb ``` [1] 2. 安装完成后,可以使用以下命令启动MariaDB: ``` systemctl start mariadb ``` 3. 如果需要进行一些管理操作,可以使用以下命令: - 重启MariaDB: ``` systemctl restart mariadb ``` - 停止MariaDB: ``` systemctl stop mariadb ``` - 设置MariaDB开机自启动: ``` systemctl enable mariadb ``` [1] 4. 如果想查看MariaDB的进程,可以使用以下命令: ``` netstat -ntlp | grep 3306 ``` 或者 ``` netstat -ntlp | grep mysql ``` [1] 5. 进行数据库的初始化,可以使用以下命令: ``` mysql_secure_installation ``` [1] 6. 初始化完成后,可以使用以下命令登录到MariaDB: ``` mysql -uroot -p ``` [1] 关于MariaDB的一些说明: - MariaDB是MySQL的一个分支,由开源社区维护,采用GPL授权许可。它的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,MariaDB使用XtraDB来代替MySQL的InnoDB。MariaDB由MySQL的创始人Michael Widenius主导开发。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MariaDB安装配置](https://blog.csdn.net/weixin_51202460/article/details/123672061)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [CentOS7下MariaDB安装配置](https://blog.csdn.net/code_peak/article/details/118772849)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值