数据库学习笔记01 - Mariadb安装配置

数据库

概述

数据库 -- 数据的仓库(集散地)-- database -- 实现数据持久化和数据管理

持久化 -- 将数据从内存转移到能够长久保存数据存储的介质的过程

数据库的分类:关系型数据库(SQL),非关系型数据库(NoSQL)

关系型数据库:

-理论基础:关系代数和集合论

-具体表象:用二维表来保存数据,- 学生表

  ~行:一条记录 - 一个学生的信息

​ ~列:一个字段, -学生的某个属性,例如学号、姓名、年龄

​ ~主键列:能够唯一标识一条记录的列,如学生的学号

-编程语言: SQL - 结构化查询语言

​ ~DDL -数据定义语言 - create / drop / alter

​ ~DML -数据操作语言 - insert / delete / update / select

​ ~DCL -数据控制语言 - grant / revoke

LAMP : Linux + Apache + MySQL + PHP

改进之路:

PHP --> Java

MySQL --> Oracle

Linux --> 小型机

阿里发起的去IOE 运动:

​ I --> IBM

​ O -->Oracle

​ E --> EMC 存储设备

关系型数据库产品:

​ -Oracle - 甲骨文

​ -IBM DB2

​ -Microsoft --> SQLServer

​ -Sybase

​ -MySQL

MySQL 数据库操作

安装mariadb

#1,搜索mariadb现有的包
rpm -qa | grep mariadb
mariadb-5.5.68-1.el7.x86_64
mariadb-libs-5.5.68-1.el7.x86_64
mariadb-server-5.5.68-1.el7.x86_64
#2,如果存在,就全部删除
rpm -e --nodeps mariadb-*
#3,卸载旧的安装包
yum remove mysql mysql-server mysql-libs compat-mysql51
#4,开始新的安装, 创建MariaDB.repo文件
vi /etc/yum.repos.d/MariaDB.repo
#插入以下内容 
# MariaDB 10.6.9 CentOS repository list - created 
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.6.9/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

#系统及版本选择:https://downloads.mariadb.org/mariadb/repositories/#mirror=tuna

#5,运行安装命令
yum -y install MariaDB-server MariaDB-client
#6,启动停止服务
systemctl start mariadb #启动服务
systemctl enable mariadb #设置开机启动
systemctl restart mariadb #重新启动
systemctl stop mariadb.service #停止MariaDB
#7,登录到数据库,默认无密码,直接回车进入,如果不行,遇到access deny,参看下面的解决办法
mysql -u root -p
#8,进入到数据库
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix             |
+--------------------+
4 rows in set (0.055 sec)

默认密码不为空解决办法

#默认密码不是空
[root@node1 ~]# mysql -uroot -ppassword
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@node1 ~]# mysql -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
#解决办法
#1,停止mysql服务
systemctl status mysql
#2,使用mysqld_safe来启动mysqld服务器 
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
#3,登录mysql,无密码,直接回车进入
mysql -u root mysql
#4,修改root用户密码 newpassword 自定义,'c***123456'
MariaDB [mysql]> UPDATE user SET PASSWORD=PASSWORD('c***123456') where USER='root';
Query OK, 5 rows affected (0.005 sec)
Rows matched: 5  Changed: 5  Warnings: 0
MariaDB [mysql]> exit
Bye
#退出即可

字符集配置

# 配置mariadb字符集,进入/etc/my.cnf.d 目录下,找到配置文件
#1, 在server.cnf文件中增加如下内容
vi server.cnf

init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake
#2,在client.cnf文件中增加如下内容
vi client.cnf
default-character-set=utf8
#3,在mysql-clients.cnf文件中增加如下内容
vi mysql-clients.cnf
default-character-set=utf8
#4, 重启mariadb
systemctl restart mariadb
#5,进入MariaDB查看字符集
-- 登录数据库,-p输入密码
mysql -u root -p
MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";
#显示如下内容
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb3                    |
| character_set_connection | utf8mb3                    |
| character_set_database   | utf8mb3                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb3                    |
| character_set_server     | utf8mb3                    |
| character_set_system     | utf8mb3                    |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.001 sec)

+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8mb3_unicode_ci |
| collation_database   | utf8mb3_unicode_ci |
| collation_server     | utf8mb3_unicode_ci |
+----------------------+--------------------+
3 rows in set (0.001 sec)

用户配置

#1,创建用户
MariaDB [(none)]> CREATE USER 'username'@'host' IDENTIFIED BY 'password';
‘
说明:
    username:你将创建的用户名
    host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
    password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
’
#2,授权用户权限,指定数据库和表databasename.tablename
MariaDB [(none)]> GRANT privileges ON databasename.tablename TO 'username'@'host'
'
说明:
    privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
    databasename:数据库名
    tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
'
#sample
MariaDB [(none)]> grant all on *.* to 'tester'@'%';
    '
    注意:
    用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
    '
MariaDB [(none)]> GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
#3,设置与更改用户密码
MariaDB [(none)]> SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
#sample
MariaDB [(none)]> SET PASSWORD FOR 'tester'@'%' = PASSWORD('1234567');
#如果是当前登陆用户用
MariaDB [(none)]> SET PASSWORD = PASSWORD("newpassword");
#4,撤销用户权限,privilege, databasename, tablename:同授权部分
MariaDB [(none)]> REVOKE privilege ON databasename.tablename FROM 'username'@'host';
#sample
MariaDB [(none)]> REVOKE SELECT ON *.* FROM 'tester'@'%';
#5, 删除用户
MariaDB [(none)]> DROP USER 'username'@'host';
#6,进入用户表,查看用户
MariaDB [(none)]> use mysql;
Database changed
MariaDB [mysql]> select host,user,password from user;
+-----------+--------+-------------------------------------------+
| host      | user   | password                                  |
+-----------+--------+-------------------------------------------+
| localhost | root   | *1837F29E990FE400079BFE4F3572CB7491895D46 |
| node1     | root   | *1837F29E990FE400079BFE4F3572CB7491895D46 |
| 127.0.0.1 | root   | *1837F29E990FE400079BFE4F3572CB7491895D46 |
| ::1       | root   | *1837F29E990FE400079BFE4F3572CB7491895D46 |
| localhost | zabbix | *DEEF4D7D88CD046ECA02A80393B7780A63E7E789 |
| %         | root   | *1837F29E990FE400079BFE4F3572CB7491895D46 |
| %         | zabbix | *DEEF4D7D88CD046ECA02A80393B7780A63E7E789 |
| host      | tester |                                           |
| %         | tester |                                           |
+-----------+--------+-------------------------------------------+
9 rows in set (0.001 sec)
#tester 密码仍然为空,使用下面的命令可以更新密码
MariaDB [mysql]> update user SET PASSWORD = PASSWORD('12345678') where user = 'tester';

posted @ 2022-09-03 21:30  逆流的鱼2016  阅读(288)  评论(0编辑  收藏  举报