初始文档
This commit is contained in:
112
开发文档/数据库/MySQL笔记.md
Normal file
112
开发文档/数据库/MySQL笔记.md
Normal 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"
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user