mysql多实例登录常见问题
mysql这边多实例登录不能直接登录,因为这边是有多个端口在启动着的,需要用对应的sock去登录,例如
# 先把mysql加到环境变量里 cp /application/mysql/bin/* /usr/local/sbin/ mysql -uroot -p -S /data/3306/mysql.sock mysql -uroot -p -S /data/3307/mysql.sock #没有密码的情况 mysql -S /data/3306/mysql.sock mysql -S /data/3307/mysql.sock
我们创建下数据库的密码,并且做下基本的数据库安全措施
#数据库设置密码 mysqladmin password 123456 -S /data/3306/mysql.sock mysqladmin password 123456 -S /data/3307/mysql.sock #查看下数据库默认的database mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ #删除掉test mysql> drop database test; mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ #看下用户的情况 mysql> select user,host from mysql.user; +------+-----------+ | user | host | +------+-----------+ | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | +------+-----------+ #只保留两个 mysql> drop user ""@localhost; Query OK, 0 rows affected (0.00 sec) mysql> drop user "root"@"::1"; Query OK, 0 rows affected (0.00 sec) mysql> select user,host from mysql.user; +------+-----------+ | user | host | +------+-----------+ | root | 127.0.0.1 | | root | master | +------+-----------+
也可以用过SQL语句来设置密码
UPDATE mysql.user SET password=PASSWORD("123456") WHERE user='root' and host='localhost';
# 上面PASSWORD表示密码是非明文
flush privileges;
数据库启动停止原理
# mysql启动命令就是调用的mysqld_safe mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1>/dev/null & # mysql停止命令 mysqladmin -u[mysql_user] -p[mysql_pwd] -S /data/3306/mysql.sock shutdown # 上面所述的/etc/init.d/mysqld start 相当于 mysqld_safe 2>&1>/dev/null & # 上面所述的/etc/init.d/mysqld stop相当于 kill pidnumber (不要带-9)
命令行修改登录提示符
# 临时生效 prompt \u@lidun \r:\m:\s-> PROMPT set to '\u@lidun \r:\m:\s->'
效果:
root@lidun 01:57:52-> root@lidun 01:57:53-> root@lidun 01:57:54->
mysql忘记密码
# 1、首先停止mysql,我们这边进行kill掉对应的进程
kill [mysql-pid]
# 2、启动数据库,进入数据库
mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables &
mysql -S /data/3306/mysql.sock
# 3、然后我们就可以修改下数据库的密码了
update mysql.user set password=PASSWORD("nishishui123") where user='root' and host='localhost';
flush privileges;
数据库安全基本设置
1、启动程序设置成700,属主和用户组为mysql
2、为Mysql超级用户设置密码
3、如果要求严格可以删除root用户,创建其它管理用户,例如admin
4、登录时尽量不要在命令行爆漏密码,备份脚本中如果有密码,给设置700,属主和用户组为mysql或root
5、删除默认存在的test库
6、删除无用的用户,只保留
| root | 127.0.0.1 |
| root | localhost |
7、授权用户对于的主机不要用%。权限不要给all,最小化授权,从库只给select。
8、清理mysql操作日志文件~/.mysql_history
9、禁止开发获取到web连接的密码,禁止开发连接操作生产对外的库。
10、phpmyadmin安全
11、服务器禁止设置外网IP
12、不要一个用户管所有的库,尽量专库专用户。

浙公网安备 33010602011771号