数据库操作命令

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"
上一篇下一篇

猜你喜欢

热点阅读