在Linux上安装MySQL


一、在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