1.mysql数据库启动、关闭、登录
1.1单实例数据库启动、关闭、登录
1)
mysql启动
/etc/init.d/mysqld start
mysqld_safe --user=mysql & #两者启动实质是一样的&使用编译及二进制安装的mysql,启动脚本由mysql-xx/support-files/mysql.server复制而来
确认mysql端口
ss -lnt|grep 3306
查看mysql进程
ps -ef|grep mysql|grep -v grep
2)关闭数据库
/etc/init.d/mysqld stop
mysqladmin -uroot -poldboy shutdown #比较温和的关闭方法
也可以强制关闭数据库
killall mysqld
pkill mysqld
killall -9 mysqld
3)登录
mysql
mysql -uroot
mysql -uroot -p #可以修改Mysql登录后的提示符:prompt \u@wk \r:\m:\s-> (临时生效,若想永久生效,放在my.cnf的【mysql】下)
退出mysql数据库
quit或\q
Ctrl+C或Ctrl+D
1.2多实例数据库启动、关闭、登录 #以3306实例为例
1)启动
/data/3306/mysql start
mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 > /dev/null &
2)关闭
/data/3306/mysql stop
mysqladmin -uroot -poldboy123 -S /data/3306/mysql.sock shutdown
3)登录
mysql -uroot -p -S /data/3306/mysql.sock
mysql -u root -p -h localhost -P 3306 #理论上可以通过不指定sock路径的方式登录
2.帮助命令--help
如:help grants
可以在mysql中查看系统文件:如 system ls /tmp
查看某数据库用户的权限:show grants for 'root'@'localhost';
3.为管理员root用户设置/修改密码
mysqladmin -u root password 'oldboy123' #单实例
mysqladmin -u root -p 'oldboy123' -S /data/3306/mysql.sock #多实例
mysqladmin -uroot -poldboy123 password '123' #在单实例已有密码的基础上修改密码,推荐使用!
update mysql.user set password=password(456) where user='root' and host='localhost'; #登录mysql后执行,完成后如需要flush privileges
set password=password('oldboy123'); #登录mysql后执行
>>>mysql密码丢失找回方法(单实例)
1)停止mysql:/etc/init.d/mysqld stop
2)忽略授权表:mysqld_safe --skip-grant-tables --user=mysql &
3)update mysql.user set password=password(456) where user='root' and host='localhost';
flush privileges;
4)重启:mysqladmin -uroot -p456 shutdown
/etc/init.d/mysqld start
>>>mysql密码丢失找回方法(多实例)
1)关闭mysql:killall mysqld
2)忽略授权表
mysqld_safe --defaults_file=/data/3306/my.cnf --skip-grant-tables &
mysql -u root -p -S /data/3306/mysql.sock #登录时空密码
3)update mysql.user set password=password(“oldboy123”) where user='root';
flush privileges;
4)重启:mysqladmin -uroot -poldboy123 -S /data/3306/mysql.sock shutdown
mysqld_safe --defaults-file=/data/3306/my.cnf
4.创建、显示、删除&连接数据库
4.1)创建数据库
create database oldboy;
show create database oldboy\G #默认的字符集为Latin1,若my.cnf中制定了字符集则创建的数据库为该配置文件中的字符集模式,无需再指定~
create database oldboy_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; #可以指定使用特定的字符集创建数据库
4.2)企业中创建数据库选择方法
1)根据开发的程序确定字符集(建议UTF8)
2)编译时在my.cnf中指定字符集,建库时默认创建即可
3)编译的时候指定了与程序不同的字符集,则需要在创建数据库时指定所需的字符集
4.3)显示数据库
show databases like '%old%';
use oldboy;
select database(); #显示当前数据库
4.4)删除数据库
drop database oldboy_gbk;
4.5)连接数据库
use oldboy;
select version(); #查看数据库版本
select user(); #查看数据库用户
select now(); #查看当前时间
show tables; #进入某库查看所有表
5.删除系统多余账号
select user.host from mysql.user;
drop user "user"@"主机”; #若删除不了,则用delete的方式删 delete from mysql.user where user=' ' and host=' '; flush privileges;
6.创建mysql用户及赋权
对用户的授权采用最小化原则(如,只给insert,delete,update,select,create,drop权限,等部署好后回收create,drop权限,主从库授权可能不同)
help grant
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass'; #默认为USAGE权限
GRANT ALL ON db1.* TO 'jeffrey'@'localhost'; #可以写为GRANT all privileges ON db1.* TO 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';
GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;
查看ALL PRIVILEGES包括哪些
1)通过踢除一个权限从而看到其他所有权限
#筛选语句mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "show grants for jeffrey@localhost;"|grep -i grant|tail -1|tr ',' '\n' >all.txt
2)也可在库中通过查询user表查询权限
use mysql
show tables;
desc user\G;
。。。
2018年10月28日
祝好!