b0112 数据库MariaDB, Mysql 使用

关键词:  MariaDB 持续累积

对MariaDB数据库和配套工具的安装、维护,以及如何使用.

说明

使用 MariaDB 5.5,  对应MySQL5.5 的开源版本,功能一样。  再往后2012年11月12日,  MariaDB 5.5 ->MariaDB 10.0, Mysql 5.6时 已经被甲骨文公司拥有所有权, 此时两个软件分别发展了。 

安装

使用 虚拟机 hc2102

centos7.9 服务器安装

随着centos7.9操作系统安装时装的。

手工操作参考命令: yum install -y mariadb-server  # 安装数据库的方式

相关命令  查看 命令行

使用

 命令行

-------------------------------
相关

b0112 数据库MariaDB 使用
https://i.cnblogs.com/posts/edit-done;postId=15076460

hc2102  root/123456, hive1/123456
hive2/123456, kk/123456

只有root才能在linux命令行登录,还没解决
-------------------------------
实际操作

启动时,会在以下目录下生成各种文件。如果启动失败,一直调试不好,可以清空,再次启动
/var/lib/mysql


# 是否安装
rpm -qa | grep mariadb

# 查看 mariadb 版本  
mysql --version

# 启动服务
service mariadb start
systemctl start mariadb

# 查看服务状态
service mariadb status
systemctl status mariadb.service

# 查看MariaDB是否启动成功  3306是默认的端口号
netstat -antup | grep 3306  

# 初始化账户和密码, 密码设置123456
mysqladmin -uroot password    

# 本地登录, 登录本机服务器, 后面的指定端口
mysql -uroot -p
mysql -u root -p  -P 3306

# 指定IP地址和端口号登录MySQL数据库
mysql -h hc2102 -u root -p

mysql -h hc2102 -u hive1 -p

mysql -h hc2102 -u hive2 -p

mysql -h hc2102 -u kk -p
-------------------------------
mariadb数据库命令行操作,登录数据库后操作,非linux shell


# 显示帮助和常用命令
help;

# 显示存在的库
show databases;

#  更改当前数据库
use mysql;
 
# 显示表
show tables;

# 查看表结构和字段
DESCRIBE slow_log;

# 查询
SELECT * FROM slow_log;

# 创建数据库
CREATE DATABASE test1;

# 创建表,插入数据
use test1;
CREATE TABLE people(name varchar(20),sex char(1));
INSERT INTO people VALUES('guodong','M');
select * from people;

# 删库
DROP DATABASE test1;

# 退出
quit;



# 创建账号, % 表示所有主机可以访问。 hive1 用来给 hc2108上的伪分布式安装的hive组件用的.
create user 'hive1'@'%'  IDENTIFIED By '123456';

# 授权
GRANT ALL PRIVILEGES ON *.* TO 'hive1'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 

# 刷新
FLUSH PRIVILEGES;



# 创建账号, % 表示所有主机可以访问。 hive2 用来给 hc2110上的分布式安装的hive组件用的.
create user 'hive2'@'%'  IDENTIFIED By '123456';

# 授权
GRANT ALL PRIVILEGES ON *.* TO 'hive2'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 

# 刷新
FLUSH PRIVILEGES;

create user 'hive2'@'%'  IDENTIFIED By '123456';

create user 'kk'@'%'  IDENTIFIED By '123456';

GRANT ALL PRIVILEGES ON *.* TO 'kk'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 

-------------------------------
紧密相关


# 安装数据库的方式
yum install -y mariadb-server 


# 查看是否有安装过mysql
rpm -qa|grep -i mysql

# 另外一个数据库postgresql
rpm -qa|grep -i postgresql



# 查看服务列表里有哪些服务
systemctl list-unit-files --type=service

# 查看root用户可以从哪些机器上访问, 这里相关错误时  ERROR 1045 (28000): Access denied for user 
select user,host from mysql.user where user='root';

# 设置服务开机启动
systemctl enable mariadb
systemctl daemon-reload

# 查看默认mysql 密码, 老版本为空,新版本5.7有
grep 'temporary password' /var/log/mysqld.log

# 改密码  
mysql> alter user 'root'@'localhost' IDENTIFIED By '123456';
-------------------------------
参考


大数据环境搭建之安装Hive以及组件Mariadb(MySQL)
https://www.pianshen.com/article/8920219090/

基于Redhat7系统的mariaDB
https://blog.csdn.net/gd0306/article/details/83626154
"大数据hadoop3.x 分布式处理实战", 吴章勇, 139-143
-------------------------------
其他资料



-------------------------------
20210808   遗留问题, 数据库中文编码和现实没有解决好

造一点数据

create database test01;

use test01;

create table emp(name varchar(20), age int);

insert into emp values ("张三", 20);
insert into emp values ("lucy", 15);
insert into emp values ("lilei", 18);
 
View Code

python

D:\1_common\python\code\projects\Bigdata2022\DB\mariadb

 

参考以下就够用了

runoob.com "Python MySQL - mysql-connector 驱动" 

runoob.com "Python3 MySQL 数据库连接 - PyMySQL 驱动"

 

维护

问题Q5 ERROR 1045 (28000): Access denied for user 'root'@'192.168.25.108' (using password: YES 20210731

描述

刚开机, 在hc2108上连接hc2102数据库服务器,  代码如下

mysql -h hc2102 -u hive1 -p

原因

密码输入错误

 

问题Q4 ERROR 1045 (28000): Access denied for user 'root'@'192.168.25.108' (using password: YES 20210729

描述

原来连接服务器时, 解决问题 Q2后,马上出现当前问题。 连接命令

mysql -h hc2102 -u root -p

 

原因

数据库服务器上每个创建的用户,都会指定有哪些远程机器可以访问它。

执行  select user,host from mysql.user where user='root';  

 

 

 如图, 远程机器的IP地址不在这里面,不能访问服务器。

解决

直接创建了一个新用户, 所有机器都可以访问.   当然如果继续用root,修改就行了

# 创建账号, % 表示所有主机可以访问。 hive1 用来给 hc2108上的伪分布式安装的hive组件用的.
create user 'hive1'@'%'  IDENTIFIED By '123456';

# 授权
GRANT ALL PRIVILEGES ON *.* TO 'hive1'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 

# 刷新
FLUSH PRIVILEGES;

 

相关

如果是因为密码错误会导致这种情况出现。 但是这里不是因为密码错误。

 网上说改 文件/etc/my.cnf中的skip-grant-tables,跳过密码验证

参考

ref1 "ERROR 1045 (28000): Access denied for user" lwei_998

ref2  书 "大数据hadoop3.x 分布式处理实战", 吴章勇, 139-143

 

问题Q3  ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'  20210729

描述

执行 mysql -uroot -p,报错

原因

本机没有安装mysql 服务器,或者服务没有启动

 

问题Q2 ERROR 1130 (HY000): Host '192.168.25.108' is not allowed to connect to this MariaDB server  20210729

描述

局域网内两台机器, hc2102装了 数据库服务器, 在本机上测试成功了。

现在在另外一台 也装了hc2108去连接 hc2102 ,结果出现这个错误。连接命令如下

mysql -h hc2102 -u root -p

原因

服务器 mysql 数据库没有授权

解决

授权。  在服务器 登录mysql命令行, 执行下面语句 授权其他机器访问。  参考  ref1 “解决报错:错误1130- Host xxx .....”  Luke.1

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; // %:表示从任何主机连接到mysql服务器

FLUSH   PRIVILEGES

 

问题Q1  Failed to start mysql.service: Unit not found. 20210729

描述

centos7.9 默认刚装完。 

执行 service mysql status   没有找到mysql服务。

执行 service mysql start  就报上面的错

 

 

 

原因:

系统没有安装这个服务。

mariadb 与 mysql有些服务器命令还是不一样

解决:

使用这些命令

# 启动服务
service mariadb start

service mariadb status

# 查看 mariadb 版本  
mysql --version

 

相关

  • disk  积累_mariadb_mysql_20210729.txt

 

posted @ 2021-07-29 18:10  sunzebo  阅读(86)  评论(0编辑  收藏  举报