数据库操作命令
2019-08-06 本文已影响0人
学Linux的小子
1.本地管理员用户密码忘记
(1) 关闭数据库
(2) 将数据库启动到无验证模式
[root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking &
(3) 修改密码
oldguo[(none)]>flush privileges;
oldguo[(none)]>alter user root@'localhost' identified by '123456';
(4)重启数据库为正常模式
[root@db01 ~]# /etc/init.d/mysqld restart
(5)测试新密码
[root@db01 ~]# mysql -uroot -p123456
2. 授权管理生产需求
(1) 授权一个管理员用户admin ,密码admin,能够通过10网段管理数据库
oldguo[(none)]>grant all on *.* to admin@'10.0.0.%' identified by 'admin';
(2) 开放一个wordpress应用的用户,密码123,nginx服务器使172.16.1.%网段.
应用用户需要权限?
select,insert,update,delete
grant select,insert,update,delete on wordpress.* to wordpress@'172.16.1.%' identified by '123';
(3) 中小公司,开发人员leader,需要开发用户dev通过10网段对wordpress进行开发和管理
grant SELECT,INSERT, UPDATE, DELETE,CREATE,ALTER,CREATE VIEW,SHOW VIEW,CREATE ROUTINE, ALTER ROUTINE,EVENT, TRIGGER on wordpress.* to dev@'10.0.0.%' identified by '123';
3.MySQL连接管理
3.1 MySQL自带命令
mysql
-u
-p
-h
-p
-S
-e
-V
<
--help
socket:
mysql -uroot -p123 -S /tmp/mysql.sock
mysql -uoldliu -p -S /tmp/mysql.sock
注意:本地登录的用户,需要提前授权localhost相关用户
TCP/IP
mysql -u oldliu -p -h10.0.0.51 -P3306
-P必须和-h同时使用
4.客户端工具链接
5.MySQL的初始化配置
1.预编译 **
2.初始化配置文件 *****
3.命令行 ***
注意:优先级3>2>1
5.1 初始化文件读取顺序
显示顺序便是读取顺序5.2初始化配置文件的作用
数据库的启动
客户端的登陆
5.3 初始化配置文件格式
[标签1]
xxxx=yyyy
[标签2]
xxxx=yyyy
[标签3]
xxxx=yyyy
标签 :
服务端
[mysqld]
[mysqld_safe]
[server]
客户端
[mysql]
[mysqldump]
[mysqladmin]
[client]
5.4 配置文件模板
[mysqld]
user=mysql(名称)
server_id=6(大于0的数,主从复制会用到)
port=3306(端口号)
basedir=/application/mysql(存放软件的位置)
datadir=/data/3306/data(存放数据的位置)
log_error=/data/3306/data/3306.log(存放日志的位置)
socket=/data/3306/mysql.sock(启动时候的会用)
[mysql]
socket=/data/3306/mysql.sock
5.5MySQL的多实例管理
#####5.5.1 准备多个目录
mkdir -p /data/330{7,8,9}/data
#####5.5.2准备配置文件
cat > /data/3307/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=7
log_bin=/data/3307/mysql-bin
EOF
cat > /data/3308/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=8
log_bin=/data/3308/mysql-bin
EOF
cat > /data/3309/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
port=3309
server_id=9
log_bin=/data/3309/mysql-bin
EOF
#####5.5.3 初始化三套数据
mv /etc/my.cnf /etc/my.cnf.bak
mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/application/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/application/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/application/mysql
#####5.5.4 systemd管理多实例
cd /etc/systemd/system
cp mysqld.service mysqld3307.service
cp mysqld.service mysqld3308.service
cp mysqld.service mysqld3309.service
vim mysqld3307.service
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
vim mysqld3308.service
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
vim mysqld3309.service
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
#####5.5.5 授权
chown -R mysql.mysql /data/*
#####5.5.6 启动
systemctl start mysqld3307.service
systemctl start mysqld3308.service
systemctl start mysqld3309.service
#####5.5.7 验证多实例
netstat -lnp|grep 330
mysql -S /data/3307/mysql.sock -e "select @@server_id"
mysql -S /data/3308/mysql.sock -e "select @@server_id"
mysql -S /data/3309/mysql.sock -e "select @@server_id"