近期有客户Linux服务器遇到MySQL不能关闭,关机时也一直卡在MySQL关闭中状态,查看系统日志是硬盘没有空间的原因,其罪魁祸首就是MySQL日志占用了大量空间,删除mysql-bin日志如下:
mysql -uroot -ppasswd -e 'reset master;'
对于普通用户不需主从同步,可禁用mysql-bin日志:
#log-bin=mysql-bin
发布时间:November 16, 2012 // 分类:数据库 // No Comments
发布时间:September 26, 2012 // 分类:数据库 // No Comments
MySQL查看当前用户及允许登录的IP:
#https://www.haiyun.me
select host,user from mysql.user;
+-----------+--------+
| host | user |
+-----------+--------+
| 127.0.0.1 | root |
| localhost | root |
+-----------+--------+
2 rows in set (0.00 sec)
新建用户允许特定IP连接,%允许所有。
grant all privileges on *.* to 'root'@'%' identified by 'password' ;
或更新现用户host信息:
update mysql.user set host = '%' where user = 'root';
刷新权限:
flush privileges;
如果还不能连接检查防火墙是否开放相应端口,mysql监听ip地址,mysql是否禁用通过tcp连接。
发布时间:June 20, 2012 // 分类:Apache,Nginx,PHP,数据库 // No Comments
发布时间:May 27, 2012 // 分类:数据库 // No Comments
1.设置或修改Mysql root密码:
默认安装后空密码,以mysqladmin命令设置密码:
mysqladmin -uroot password "password"
Mysql命令设置密码:
mysql> set password for root@localhost=password('password);
更改密码:
update mysql.user set password=password('password') where user='root';
flush privileges;
2.删除默认的数据库和用户
drop database test;
use mysql;
delete from db;
delete from user where not(host="localhost" and user="root");
flush privileges;
更改默认root账号名称:
update mysql.user set user="admin" where user="root";
flush privileges;
本地文件安全:
set-variable=local-infile=0
禁止远程连接mysql,远程管理可通过phpmyadmin,编辑my.cnf在[mysqld]添加:
skip-networking
6.最小权限用户:
#CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT USAGE ON *.* TO 'user'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `databases`.* TO 'user'@'localhost';
限制普通用户浏览其它数据库,编辑my.cnf在[mysqld]添加:
--skip-show-database
8.快速修复MySQL数据库
修复数据库
mysqlcheck -A -o -r -p
修复指定的数据库
mysqlcheck -o -r database -p
9.跟据内存的大小选择MySQL的配置文件:
my-small.cnf # > my-medium.cnf # 32M - 64M
my-large.cnf # memory = 512M
my-huge.cnf # 1G-2G
my-innodb-heavy-4G.cnf # 4GB