1、检查MariaDB
因为这个会和MySQL有冲突,所以先检查一下是否有安装
#查看mariadb rpm -qa|grep mariadb #卸载mariadb,mariadb-libs-5.5.44-2.el7.centos.x86_64是上一步查看显示出来的 rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 #删除etc目录下的my.cnf rm /etc/my.cnf
2、检查是否已经存在MySQL
#查看mariadb rpm -qa | grep mysql #卸载mysql,mysql-libs-5.1.73-5.el6_6.x86_64是上一步查看显示的结果 rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
3、官网下载安装包
官网地址MySQL :: Download MySQL Community Server (Archived Versions),下载对应版本的安装包,如果不知道版本,输入如下命令即可查看
getconf LONG_BIT
4、上传下载好的文件
可以使用SSH工具连接(WINSCP/FinalShell/Xshell),连接到服务器之后可视化界面上传到任意文件夹下即可,我上传到了home目录下
5、解压
进入/usr/local
下,输入如下命令解压
cd /usr/local/ tar -xvf /home/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
解压完成之后,给解压好的文件夹改个名字
mv mysql-8.0.28-linux-glibc2.12-x86_64 mysql
6、创建data目录
mkdir /usr/local/mysql/data
7、创建MySQL用户组和用户
#进入mysql目录 cd /usr/local/mysql #添加用户组 groupadd mysql #添加用户 useradd -g mysql mysql
8、更改权限
为了方便,直接给mysql文件夹更改权限
chown -R mysql.mysql /usr/local/mysql
9、配置环境
配置my.cnf文件,如果没有则使用如下命令创建
touch /etc/my.cnf
如果有,直接编辑
vim /etc/my.cnf
按i
进入编辑模式,加入环境配置,可直接删除原配置,粘贴下方配置,注意要修改自己安装mysql的位置,如果是和我安装的位置一样,那么直接复制粘贴即可。
[mysql] #设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=/usr/local/mysql # 设置mysql数据库的数据的存放目录 datadir=/usr/local/mysql/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M socket=/usr/local/mysql/mysql.sock symbolic-links=0 [client] port=3306 socket=/usr/local/mysql/mysql.sock !includedir /etc/my.cnf.d
按ESC
键,输入:wq
进行保存。
10、初始化
进入mysql的bin目录(第二条命令不要忘记修改自己的mysql安装目录)
cd /usr/local/mysql/bin/ ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --initialize
此时,如果linux环境缺少libaio.so.1
,会报错./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
安装对应的缺少文件后,再执行刚才的命令
yum install -y libaio.so.1 #如果执行了上边的命令不能解决,那么在执行下边的即可 yum install -y libaio
等待安装成功后,重新执行,如下图所示即成功初始化,记住初始密码
11、加入系统服务
同样,再次提醒,不要忘记修改自己的mysql安装目录
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chkconfig --add mysql
12、启动MySQL,修改密码
service mysql start
#进入mysql ./mysql -u root -p
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; #刷新权限 flush privileges;
13、配置远程访问
使用刚才设置的密码进行登录,登录成功后输入下面的命令
use mysql; select user,host,plugin,authentication_string from user; #mysql8认证方式改了,mysql_native_password这个才能远程连接mysql alter user 'root'@'%' identified with mysql_native_password by 'root'; flush privileges;
14、Navicat测试连接
阿里云Linux服务器开放Mysql端口(3306)
1. 进入mysql服务之后
# 进入mysql表
use mysql;
# 查看mysql的所有用户
select host,user,password from user;
2. 添加远程访问的用户权限
# root表示mysql的一个用户名 '%'表示所有远程ip '123456'是密码
# 该命令的意思是任何公网IP的都可以通过用户名为root 密码为123456 访问改数据库
grant all privileges on *.* to root@'%' identified by '123456' with grant
option;
# 使其立即生效
flush privileges;
# 退出
exit;
# 重启mysql服务
service mysql restart
3. 在防火墙中开放端口
# 首先进入/etc/sysconfig 查看是否有iptables文件
cd /etc/sysconfig
# 若没有iptables文件 则执行以下命令 再查看就会有iptables文件了
yum install iptables-services
# 编辑iptables文件 在图中位置添加下面一句话(位置一定要对)
# 注意:增加的开放3306端口的语句一定要在icmp-host-prohibited之前
# 若是以后想开放其他端口也是在这里添加 只需要将3306替换成其他端口号
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
# 重启防火墙
systemctl restart iptables.service
# 查看防火墙状态
service iptables status
说明: 一般到这一步就已经打开3306端口号了, 可以在本地终端用telnet探测一下
命令:telnet 公网IP 端口号
例如:telnet 128.101.10.66 3306
如果显示的是 Connected to 120.79.67.32 说明打开成功
若果显示的是连接超时的话, 就是需要打开阿里云控制, 开放一下端口
4. 阿里云控制台开放端口
详细步骤: 登陆阿里云, 看第二大步骤, 很简单的 传送门
参考文章:
http://blog.csdn.net/benben0503/article/details/51671680
http://blog.csdn.net/WeakFantasy/article/details/52348829?locationNum=10