开启远程登录:
方法I
登录mysql(我是用远程控制Linux服务器,相当于在服务器本机登录mysql了),然后输入:
mysql>grant all privileges on *.* to admin@localhost identified by 'something';添加一个用户admin并授权通过本地机(localhost)访问,密码"something"。
mysql>grant all privileges on *.* to admin@"%" identified by 'something';添加一个用户admin并授权可从任何其它主机发起的访问(通配符%)。使用这一条语句即可。
方法II
mysql>insert into user values('%','admin',password('something'), 'y','y','y','y','y','y','y','y','y','y','y','y','y','y');
with grant option表示新增的该账号是否有grant权限,即是否可以通过其创建新账号。
非常不建议给用户开放全部权限,最好给新用户仅开放所需要的相关权限。一般给开发人员SELECT,UPDATE,DELETE,INSERT,CREATE,EXECUTE权限并且只在某些网段内访问
FLUSH PRIVILEGES;刷新权限
修改端口:
修改/etc/my.cnf
添加port=3308
修改后如下
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3308
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
然后重启mysql
如果你开启了selinux,mysql会无法启动,你会在日志中看到以下错误
[ERROR] Can't start server: Bind on TCP/IP port: Permission denied
[ERROR] Do you already have another mysqld server running on port: 3308
那么,你需要关掉selinux,不想重启服务器,而关掉selinux,使用以下命令
/usr/sbin/setenforce 0
修改linux下mysql端口时候报错:
Can't start server: Bind on TCP/IP port: Permission denied
需要修改: vi /etc/selinux/config
SELINUX=disabled
然后重启服务器即可
开放防火墙端口:
#/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
#/etc/rc.d/init.d/iptables save 保存:
# service iptables restart 重启生效
当然除了开放3306端口外,还有一个方法就是关闭防火墙,命令为:
# service iptables stop
不过,不推荐这种做法,因为这会引起安全性问题。