一、在ContOS6.5上安装MySQL
1.查看yum上提供的mysql数据库可下载的版本
yum list | grep mysql
2.安装MySQL及其他所需组件
yum install -y mysql-server mysql mysql-devel
3.启动MySQL服务(首次启动要设置密码,否则无法登录)
service mysqld start
4.设置用户密码
cd /usr/bin mysqladmin -u root password ‘新密码’
5.设置开机启动mysql服务
查看mysql的状态
chkconfig --list | grep mysqld
开机自启
chkconfig mysqld on
重启mysql服务
service mysqld restart
6.登录mysql
mysql -u root -p
回车后输入密码,如果密码正确就会进入mysql
7.查看版本、初始库和用户
select version(); show databases; use mysql; select host,user from user;
8.设置MySQL允许远程连接
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
flush PRIVILEGES;
9.查看是否设置成功
select host,user from user;
10.设置Linux防火墙端口
如果关闭了防火墙就不用进行10-11步骤。
vi /etc/sysconfig/iptable
添加如下内容
11.重启防火墙
service iptables restart
12.测试
使用navicat或sqlyog进行连接,主机地址就是linux的ip地址,密码是在授权时设置的密码,这里是1234。ip地址使用ifconfig可以查询。
二、阿里云安装mysql
1.安装mysql数据库
a)下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
b)安装mysql源,若结尾出现complete!,则说明MySQL源安装完成
yum localinstall mysql57-community-release-el7-8.noarch.rpm
c)检测是否安装完成
yum repolist enabled | grep "mysql.*-community.*"
d)安装mysql,若结尾出现Complete!, 则MySQL安装完成
yum install mysql-community-server
e)设置开启启动mysql服务
systemctl enable mysqld
f)查看安装的mysql版本
rpm -aq | grep -i mysql
g)启动MySQL服务
systemctl restart mysqld
h)查看MySQL初始密码,这个密码是随机生成的
grep 'A temporary password' /var/log/mysqld.log
i)更改MySQL密码
mysqladmin -u root -p'旧密码' password '新密码'
这里更改密码出了问题,更改失败,这是因为密码太过简单的原因。有两个接解决方法:
方法一:把密码设置复杂点(这是最直接的方法)
方法二:关闭mysql密码强度验证(validate_password)
编辑配置文件
vim /etc/my.cnf
增加这么一行
validate_password=off
重启mysql服务
systemctl restart mysqld
j)设置mysql能够远程访问
登录进MySQL,给予root用户访问权限
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
2.配置阿里云服务器
a)打开管理后台,打开创建的实例,点击右边更多
b)选择配置规则,对入方向进行配置
c)选择添加安全组规则,开启3306端口。授权对象选择0.0.0.0/0所有ip可访问
d)重启服务器
e)使用navicat或sqlyog进行连接,主机地址就是linux的ip地址,使用ifconfig可以查询ip
3.问题处理
如果本地可以使用,而远程无法使用,显示如下:
那么解决办法也如下:
第一步:在远程主机上,登录mysql,执行查询语句1:
select host, user, Password, grant_priv from user;
截图如下,会发现localhost和允许远程的密码不一致,所以需要再次修改密码,执行修改语句1:
update user set password=password('123456') where user='root'
执行完成后再次执行上面的查询语句1,发现密码一致了,然后重启服务器就可以进行远程访问了。
systemctl restart mysqld
.