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);
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