mysqld--initialize报错_MySQL04--版本区别及管理MySQL版本区别及管理
⼀.MySQL5.6与MySQL5.7安装的区别
1、cmake的时候加⼊了bostorg
2、初始化时 使⽤mysqld --initialize 替代mysql_install_db,其它参数没有变化:--user= --basedir= --datadir=
3、--initialize会⽣成⼀个临时密码
4、还可以⽤另外⼀个参数--initialize-insecure
[root@db02 mysql-5.7.20]# yum install -y gcc gcc-c++ automake autoconf[root@db02 mysql-5.7.20]# yum install make cmake bison-devel ncurses-devel l
⼆.MySQL⽤户权限管理
1.MySQL⽤户基础操作
Linux⽤户的作⽤:
1)登陆系统
2)管理系统⽂件
Linux⽤户管理:
1)创建⽤户:useradd adduser
2)删除⽤户:userdel
3)修改⽤户:usermod
MySQL⽤户的作⽤:
1)登陆MySQL数据库
2)管理数据库对象
mysql下载什么版本的MySQL⽤户管理:
1)创建⽤户:create user 、grant
#创建⽤户create user zls@'%';#创建⽤户同时给密码(5.7)如果⽤户不存在没法使⽤grantcreate user qls@'%' identified by '123';grant all on *.* to qls@'%';
2)删除⽤户:delete user 、drop user
mysql> drop user root@'db02';Query OK, 0 rows affected (0.00 sec) mysql> drop user ''@'db02';Query OK, 0 rows affected (0.00 sec)
3)修改⽤户:update 、 alter 、 grant
mysql> update mysql.user set password=PASSWORD('123') where user='root' and host='localhost';
MySQL⽤户的定义:
username@’主机域’
主机域:可以理解为是MySQL登陆的⽩名单
主机域格式:
root@'%' selectroot@'localhost' 超级⽤户root@'127.0.0.1' 超级⽤户root@'10.0.0.%'root@'10.%.%.%'root@'10.0.0.0/255.255.255.0'root@'db01'mysql> select use
MySQL⽤户管理实战
刚装完MySQL数据库该做的事情
1、设定初始密码(root@localhost)
[root@db02 mysql-5.7.20]# mysqladmin -uroot -p password ‘oldboy123’
2、修改密码
3、使⽤密码登陆
[root@db02 mysql-5.7.20]# mysql -uroot -p123
4、清理⽆⽤的⽤户
误删除了所有⽤户
#关闭数据库[root@db02 mysql-5.7.20]# /etc/init.d/mysqld stop#启动数据库(加上参数后,不能使⽤tcp连接,只能socket连接,保证安全性)[root@db02 mysql-5.7.20忘记root密码
先启动数据库 mysqld_safe --skip-grant-tables --skip-networking .update修改密码update mysql.user set password=PASSWORD('123') where user='root' and host=
2.⽤户管理及权限管理_
1)创建⽤户
mysql> create user oldboy@'10.0.0.%' identified by '123';
2)查看⽤户
mysql> select user,host from mysql.user;
3)删除⽤户
mysql> drop user oldboy@‘10.0.0.%’;
4)修改密码
mysql> set passwordmysql> update user set password=PASSWORD('oldboy123') where user='root' and host='localhost';mysql> grant all privileges on *.* t
5)⽤户权限介绍
MySQL的权限定义:作⽤对象:库、表权限
INSERT,SELECT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, S
给开发开权限
grant INSERT,SELECT, UPDATE, DELETE on *.* to dev@'xxx';
权限最⼩化,最⼩级别不是表级别,是列级别(很重要)
grant select on mysql.user.user to dev@'10.0.0.5%' identified by '123';
主机域:10.0.0.5% 可以连接:10.0.0.50-59 10.0.0.5
脱敏:脱离敏感信息
grant select(user,host) on wzry.user to no_vip@'%' identified by '123';
数据库集,10.0.0.51 52 53 54
grant all privileges on *.* to oldboy@’10.0.0.%’ identified by ‘123’; 权限作⽤对象归属密码
作⽤对象分解
*.* [当前MySQL实例中所有库下的所有表]wordpress.* [当前MySQL实例中wordpress库中所有表(单库级别)]wordpress.user [当前MySQL实例中wordpress库中的user #创建wordpress数据库create database wordpress;#使⽤wordpress库use wordpress;#创建t1、t2表create table t1 (id int);create table t2 (id int);#创建blog库create 1、grant select on *.* to wordpress@’10.0.0.5%’ identified by ‘123’;针对wordpress@'10.0.0.5%' 授权所有库所有表查询权限密码是 123 2、grant insert,delete,upd ⼀个客户端程序使⽤wordpress⽤户登陆到10.0.0.51的MySQL后
[root@db02 ~]# mysql -uwordpress -p123 -h10.0.0.51
问:
⼀个客户端程序使⽤wordpress⽤户登陆到10.0.0.51的MySQL后,
1、对t1表的管理能⼒?
2、对t2表的管理能⼒?
3、对tb1表的管理能⼒?
解:
1、同时满⾜1,2,3,最终权限是1+2+3
2、同时满⾜了1和2两个授权,最终权限是1+2
3、只满⾜1授权,所以只能select
结论:
**1、如果在不同级别都包含某个表的管理能⼒时,权限是相加关系。 **
**2、但是我们不推荐在多级别定义重复权限。 **
*3、最常⽤的权限设定⽅式是单库级别授权,即:wordpress. 【单库级别】 **
3.企业中权限的设定
开发⼈员说:请给我开⼀个⽤户
沟通:
1、权限是什么? insert , delete , update
2、你需要对哪些库、表,哪些列进⾏操作 ?
3、你从哪⾥连接过来
4、⽤户名、密码有没有要求
5、发邮件,⾛流程(⾮常重要)
#⼀般给开发创建⽤户权限grant select,update,delete,insert on *.* to oldboy@’10.0.0.%’ identified by ‘123’;
三.MySQL连接管理
1.连接⼯具
1)MySQL⾃带的连接⼯具
mysql常见的特定于客户机的连接选项:-u:指定⽤户-p:指定密码-h:指定主机-P:指定端⼝-S:指定sock-e:指定SQL--protocol=name:指定连接⽅式
2)第三⽅的连接⼯具sqlyog、navicat
应⽤程序连接MySQL
注意:需要加载对应语⾔程序的API
2.连接⽅式
socket连接
mysql -uroot -poldboy123 -S/application/mysql/tmp/mysql.sockmysql -uroot -poldboy123
TCP/IP
mysql -uroot -poldboy123 -h10.0.0.51 -P3306
问题:你怎么判断你的MySQL数据库可以对外提供服务?
四.MySQL启动关闭流程
启动
/etc/init.d/mysqld start ------> mysqld_safe ------> mysqldservice mysqld startsystemctl start mysqldmysqld_safe --defaults-file=/etc/myf &
关闭
/etc/init.d/mysqld stop service mysqld stopsystemctl stop mysqldmysqladmin -uroot -poldboy123 shutdown #虽然可以关闭,但是不可⽤。会损坏⽂件,可能导致丢出现问题:
1、如果在业务繁忙的情况下,数据库不会释放pid和sock⽂件
2、号称可以达到和Oracle⼀样的安全性,但是并不能100%达到
3、
在业务繁忙的情况下,丢数据(补救措施,⾼可⽤)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论