一、背景
前阵子入手了一台云服务器,基本配置如下:
- 内存:512MB
- 硬盘:10GB SSD
- 流量:1000GB/月
好!开干。
二、安装
以下是一种方案(新手勿喷~):
通过yum的方式来安装,命令yum list | grep mysql 查看可选列表
1.直入主题吧,先试试安装吧。命令:
yuminstall -y mysql-server mysql mysql-deve
此过程省略~~
2.查看版本
rpm -qi mysql-server
3.启动mysql
service mysqld start
4.查看是否开机启动,都是off
chkconfig --list |grep mysqld
可以设置开机启动
chkconfig mysqld on
5.设置root密码
mysqladmin -u root password 'root' 设置成功后再次设置就不允许了
三、配置
此配置是为了提供远程客户端访问,开启连接的权限。
默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限。
主流的有两种方法,改表法和授权法,改表法比较容易一点
1、登陆mysql
1 | mysql -u root -p |
2、修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip
1 2 3 4 | mysql> use mysql; mysql> update user set host = '%' where user = 'root'; mysql> select host, user from user; mysql> flush privileges; |
防火墙开放3306端口
1、打开防火墙配置文件
1 | vi /etc/sysconfig/iptables |
2、增加下面一行
1 | -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT |
3、重启防火墙
1 | service iptables restart |
四、ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
jiji~~刚得瑟没久就遇到了问题。
错误提示,理解起来是空用户登录,查下解决方案。果然,强大的搜索引擎!
发现是因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的''@'localhost'可以看出来
然后我启动了个navicat吧那几个匿名用户删了,然后。然后可以了。顺利访问。。
五、总结
这个故事告诉我们,就算环境再差,也要不失一颗爱折腾要折腾想折腾的心呐~