在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可以查询。
二、在Linux安装mysql8
1)在官网下载安装包mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz,上传至服务器
2)解压并重命名
xz -d mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz tar xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql
3)创建用户组及用户和密码
进入mysql安装目录
cd /usr/local/mysql
groupadd mysql
useradd -g mysql mysql
4)授权用户
chown -R mysql.mysql /usr/local/mysql
5)编辑my.cnf文件
vim /etc/my.cnf
将以下内容复制进去
[mysqld] user=root datadir=/usr/local/mysql/data basedir=/usr/local/mysql port=3306 max_connections=200 max_connect_errors=10 character-set-server=utf8 default-storage-engine=INNODB default_authentication_plugin=mysql_native_password lower_case_table_names=1 group_concat_max_len=102400 [mysql] default-character-set=utf8 [client] port=3306 default-character-set=utf8
然后保存退出
6)初始化基础信息,生成初始化密码
cd bin
./mysqld --initialize
此时会生成一个临时密码,需要保存下来,便于后续改密码
7)添加mysqld服务到系统
cd .. cp -a ./support-files/mysql.server /etc/init.d/mysql
8)授权以及添加服务
chmod +x /etc/init.d/mysql chkconfig --add mysql
9)启动mysql
service mysql start
10)将mysql添加到命令服务
ln -s /usr/local/mysql/bin/mysql /usr/bin
11)登录mysql 并修改密码
mysql -uroot -p 输入初始化的密码
更新密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
flush privileges;
11)更改root连接权限
use mysql; update user set host='%' where user = 'root'; flush privileges;
退出mysql,就可以通过连接工具登录root账户进行远程连接了
三、阿里云安装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