数据库
概述
数据库 -- 数据的仓库(集散地)-- 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';
标签:MariaDB,--,root,数据库,set,mysql,Mariadb,安装,mariadb
From: https://www.cnblogs.com/orange2016/p/16653735.html