如何在Linux下安装MySQL,建立远程连接

本文为系列文章,该系列主要包含如何一步步在Linux上搭建项目。主要分为如何在

Linux下安装php

Linux下安装nginx、

Linux下安装MySQL、

Linux下如何配置nginx等。


一、安装前

检查是否已经安装过mysql,执行命令

[root@localhost /]# rpm -qa | grep mysql

从执行结果,选择是否,执行删除命令,如下是删除命令

[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

查询所有Mysql对应的文件夹

[root@localhost /]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost lib]# find / -name mysql
/data/mysql
/data/mysql/mysql

删除相关目录或文件

[root@localhost /]#  rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql 

验证是否删除完毕

[root@localhost /]# whereis mysql
mysql:
[root@localhost /]# find / -name mysql
[root@localhost /]# 

检查mysql用户组和用户是否存在,如果没有,则创建

[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r -g mysql mysql
[root@localhost /]# 

二、下载编译安装

1.下载

前往myql官网下载合适的安装包,并上传到服务器 usr / local / 下

进入local目录下解压文件,并重命名

tar xzvf mysql-5.7.30-linux-glibc2.12-x86_64.tar
mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql

在 / usr / local / mysql 目录下创建 data 目录在 / usr / local / mysql 目录下创建 data 目录

mkdir /usr/local/mysql/data

更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql

2.编译安装

编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

可能会出现错误:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 这是Linux-centos版本的问题,有的版本缺少libaio.so.1文件
解决办法:出现该问题首先检查该链接库文件有没有安装使用 命令进行核查

rpm -qa|grep libaio 

运行命令后发现系统中无该链接库文件,则安装

yum install  libaio-devel.x86_64

安装后,再次执行开始的编译安装并初始化操作,成功的同学进入第下一步,如果还报上一步的错误,请执行:

yum -y install numactl

然后再次执行编译安装并初始化操作,无误后,进入下一步

运行初始化命令成功后,输出日志如下:
在这里插入图片描述
记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。


三、建立连接

编辑配置文件my.cnf,添加配置如下

vi /etc/my.cnf

将里面原有的全部注释掉,添加

[mysql]
socket=/usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /usr/local/mysql/mysql.sock
pid-file = /usr/local/mysql/mysql.pid
log-error = /usr/local/mysql/data/mysql.err
#log-bin = /usr/local/mysql/data/mysql-bin
character-set-server = utf8

注:如果不会使用Linux编辑操作,可以找到 服务器根目录 / etc / my.cnf ,用xftp打开编辑并保存。

然后执行启动数据库操作

/usr/local/mysql/support-files/mysql.server start

如果报了找不到 PID file 这个文件,查看 usr / local / mysql 有无 mysql.pid 和 mysql.sock.lock文件,
没有可以用记事本新建这两个文件,两个文件里面的内容都为空(或者填3712,只是一个mysql进程ID)
或者 注释掉 etc / my.cnf 中的第10条 ,注释方法:行前加 #

再次执行启动数据库操作

/usr/local/mysql/support-files/mysql.server start

执行成功会出现:

Starting MySQL.                                      [ok]

如果出现错误信息

Starting MySQL... ERROR! The server quit without updating PID file

或者说 mysql 服务已经有在启动的,查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令

#查询服务
ps -ef|grep mysql | grep -v grep
ps -ef|grep mysqld | grep -v grep

#结束进程
kill -9 PID

#启动服务
 /usr/local/mysql/support-files/mysql.server start

注:PID指的是查询服务记录中的ID

添加软连接,并重启mysql服务

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart

登录mysql,修改密码(密码为步骤6生成的临时密码)

[root@localhost /]#  mysql -u root -p
Enter password:
mysql>set password for root@localhost = password('yourpass');

注意:输入密码时,Enter password 后面不会有任何显示,此时实际是输入成功的,输入完密码后直接回车即可。


四、开放远程连接

开放远程连接

mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;

此时,就可以使用远程连接工具,进行连接,如果连接不上,请做如下操作

mysql>use mysql;
msyql>grant all privileges on *.* to 'root'@'%' identified by '你的MySQL密码';
mysql>flush privileges;

查看root用户权限是否为%,以及能否查找到3306端口

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select user,host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| root          | %         |
| mysql.session | localhost |
| mysql.sys     | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)

mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)

如果查询到的结果如上,则查看阿里云配置安全组的规则中,有没有添加3306端口,如果没有则手动添加;
然后再尝试远程连接,如果还是无法连接,则查看Linux有没有开启防火墙,以及防火墙有没有开启3306端口,如果没有,添加上3306端口;

设置开机自动启动

1、将服务文件拷贝到init.d下,并重命名为mysql
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
[root@localhost /]# chmod +x /etc/init.d/mysqld
3、添加服务
[root@localhost /]# chkconfig --add mysqld
4、显示服务列表
[root@localhost /]# chkconfig --list

总结

到此就全部安装结束了,可以去使用navicat进行远程连接了,请务必记好自己的数据密码~

猜你喜欢

转载自blog.csdn.net/CharmHeart/article/details/112950887
今日推荐