初始文档

This commit is contained in:
2026-01-14 11:27:47 +08:00
parent 84a58e8daf
commit 564285cf07
62 changed files with 8729 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
# mysql主备搭建
```sql
CREATE DATABASE IF NOT EXISTS kodbox1 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create user 'sqladmin'@'%' identified by 'em123456';
grant all on *.* to 'sqladmin'@'%';
```
## 1045(28000)错误解决方法
^055b1a
```
原因:
root用户不能远程登录,
解决方法:
1.可以在容器内输入mysql直接以root用户进入数据库,修改root用户远程权限
2.在mysql配置文件末尾添加skip-grant-tables,跳过权限检查,配置文件在/etc/mysql/my.cnf
```
# MySQL安装
## centos使用yum安装mysql8.0
```sh
# centos7-mysql8.0版本
wget https://dev.mysql.com/get/mysql80-community-release-el7-8.noarch.rpm
# 安装存储库
yum install -y mysql80-community-release-el7-8.noarch.rpm
# 禁用5.7的存储库,启用8.0的存储库
yum-config-manager --disable mysql57-community
yum-config-manager --enable mysql80-community
# 安装服务端和客户端
yum install -y mysql-community-server mysql-community-client
# 启动mysql服务端
systemctl start mysqld
# 查询root密码
grep 'temporary password' /var/log/mysqld.log
```
## 创建MySQL容器
^a6aefb
```sh
# 创建容器网络
docker network create -d bridge vlan100
# mysql8.0版本
docker run -itd --name ms10 -h ms10 --restart=always --network vlan100 -e MYSQL_ROOT_PASSWORD=abc123456 -v /var/mysql/ms10/data:/var/lib/mysql -v /var/mysql/ms10/log:/var/log -p 8010:3306 mysql:latest
# mysql5.7版本
docker run -itd --name ms10 --restart=always --network vlan100 -e MYSQL_ROOT_PASSWORD=abc123456 -p 9901:3306 mysql:5.7
```
# mysql基本用法
```mysql
# 创建数据库
CREATE DATABASE IF NOT EXISTS dbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# 查看数据库字符集
show variables like %character%;
show variables like %collation%;
# 创建用户,%代表任意主机访问权限,localhost代表本地访问权限
create user 'username'@'%' identified by 'password';
# 查询所有用户
select user,host from mysql.user;
# 查询当前用户
select current_user;
select user();
# 修改用户名
rename user 'user1'@'%' to 'user2'@'%';
# 删除用户
drop user 'user1'@'%';
delete from mysql.user where user='user1'
# 修改密码
alter user 'user1'@'%' identified by 'newpassword';
# 查看用户权限
show grants for 'user1'@'%';
# 查看所有数据库
show databases;
# 查看所有数据表;
show tables;
# 添加权限,赋予用户user1对testdb数据库的所有权限,*代表所有数据表,权限有select,delete,update,create,drop
grant all on testdb.* to 'user1'@'%';
# 添加查询权限,给user1用户添加testdb的name表的查询权限
grant select on testdb.name to 'user1'@'%';
# 撤销权限,
revoke all on testdb.* from 'user1'@'%';
# 刷新系统权限表,即时生效
flush privileges;
```
# MySQL常用操作
```sh
# 主配置文件:
/etc/my.cnf
# 数据库文件:
/var/lib/mysql
# 日志文件:
/var/log
# 获取5.7版本以上的随机密码
grep 'temporary password' /var/log/mysqld.log
# 登录
mysql -uroot -p
# 修改密码
SET PASSWORD = PASSWORD('new password')
# 跳过密码验证
echo "skip-grant-tables" >> /etc/my.cnf
# 重启msql
# 重置密码
update user set password=password("你的新密码") where user="root"
```