首页 > 数据库 >在Linux中配置MySQL并远程连接

在Linux中配置MySQL并远程连接

时间:2023-04-10 13:58:51浏览次数:47  
标签:-- Linux 3306 mysqld usr mysql MySQL local 远程

一.安装前的检查和准备工作。

1.1检查自己的liunx是否安装过mysql

rpm -qa | grep mysql

​ 1.1.1如果有的话,就删除(XXXX是自己的mysql目录)

rpm -e --nodeps mysql-xxxx

1.2查询所有的mysql对应的文件夹

whereis mysqlm
find / -name mysql

​ 1.2.1删除相关目录或者文件

rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql

​ 1.2.2验证一下是否删除干净

whereis mysqlm
find / -name mysql

1.3检查mysql用户组和用户是否已经创建过,没有就创建(4个命令一步一步操作)

cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -r -g mysql mysql

二.安装Mysql

1.在liunx中cd 到你上传或者下载的mysql目录。

2.然后复制下面命令解压它:(如果版本不一样,换下名字即可。)

tar -zxvf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz

3.解压完成后可以看到上图中多了一个文件夹目录。

4.复制下面的命令:移动这个目录到/usr/local目录下,并修改名字为mysql

mv mysql-5.7.40-linux-glibc2.12-x86_64 /usr/local/mysql

5.复制下面的命令:在/usr/local/mysql目录下创建data目录(一定要在这个目录中创建!!)

mkdir /usr/local/mysql/data
  1. 修改mysql目录的下所有的目录及文件夹的用户组和用户的权限。
chown -R mysql:mysql /usr/local/mysql

chmod -R 755 /usr/local/mysql

7.如果输入上面命令报错!就说明你没有创建MySQL的用户!(没报错忽略这一步!)

使用下面命令添加mysql用户

groupadd mysql
useradd -r -g mysql mysql

8.下面进行编译并初始化mysql

初始化会出现一个临时密码,一定要记住这个密码!复制保存出来!(后面改密码要用!)

8.1 进入你安装好的mysql的/bin目录

cd  /usr/local/mysql/bin

8.2 复制下面的命令进行编译和初始化。(重要)

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

出现的临时密码一定要记录下来!

用Xftp软件进入/usr/local/mysql的目录。在这里新建一个my.cnf的文件。

用Xftp打开这个文件,右键,用记事本编辑。(复制下面的配置信息到my.cnf文件里)

[mysqld]
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8

9.启动mysql服务。

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

报错信息如下:(contOS 7.5 以上会报这个错)

Starting MySQL.The server quit without updating PID file (/usr/local/mysql/data/..pid).

解决方法:

1.把自己上面创建的my.cnf文件删除,然后用liunx自带的my.cnf文件。

liunx 自带my.cnf路径: /etc/my.cnf

将上面的配置信息替换到这个里面去

10.添加mysql 软连接并重启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

11.登录mysql ,并修改你的初始密码!(密码为上面生成的临时密码)

mysql -u root -p

复制下面的命令修改密码:(这里我改的是123456,你们随意!)

set password for root@localhost = password('123456');

12.用Navicat界面管理软件去连接

登录MySQL后:输入下面命令:

mysql -u root -p
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

执行完毕后就可以用远程连接了!

如果Navicat连接报错

输入命令 iptables -vnL|grep 3306 回车,查看防火墙是否设置了3306端口

如果回车后没数据,说明没有3306端口,如果回车后显示3306端口是drop状态,都需要修正,方法如下:

输入命令然后回车
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

再次输入 iptables -vnL|grep 3306 回车即可看到3306端口状态信息:

再使用navicat连接mysql就没有问题了。

Linux防火墙开放3306端口(重启也不会失效)

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd reload

MySQL数据库服务启动:service mysqld status 报错,Unit mysqld.service could not be found.

解决办法:

1.将该mysql数据库/usr/local/mysql/support-files路径下的mysql.server复制到/etc/init.d路径下,并重命名为mysqld

2.chmod a+wrx /etc/init.d/mysqld

3.修改mysqld文件中(66~73行代码处)的basedir、bindir、sbindir、libexecdir路径为该mysql安装路径

保存后执行

启动mysql服务
service mysqld start
关闭MySQL服务
service mysqld stop

linux 上设置mysql开机自启

1、普通启动,进入mysql安装路径 :cd /usr/local/mysql

service mysql start

2、这个时候我们只是单纯的启动了mysql,并没有做到开机启动
我们设置开机启动需要将mysql.server 文件复制到 /etc/rc.d/init.d/ 目录下mysql 文件 我们的mysql.server 文件一般都在安装的根目录下的 support-files 目录下

cp /usr/local/mysql/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

3、复制成功后我们需要给赋予权限

chmod +x /etc/init.d/mysql

4、 添加为服务:

chkconfig --add mysql

5、查看服务列表:

chkconfig --list

看到3、4、5状态为开或者为 on 则表示成功。 如果是 关或者 off 则执行一下:

chkconfig --level 345 mysqld on

重启计算机:reboot

再次查看服务列表或者查看3306端口号

至此,结束MySQL的安装与测试!

标签:--,Linux,3306,mysqld,usr,mysql,MySQL,local,远程
From: https://www.cnblogs.com/Leehy0518/p/17302654.html

相关文章

  • Loki采集Mysql errorlog,你值得拥有的错误日志聚合系统
    说到分布式日志存储系统,大家肯定对ELK、EFK这些工具并不陌生。可是它们都基于Elasticsearch存储,搭建复杂,耗资源,上手难。所以,个人非常推崇Grafana Labs开源的Loki 轻量级日志聚合分析系统Loki使用标签来作为索引,而不是对全文进行检索,所以在搜索上会有一定的局限性。但是,也能满......
  • 远程抄表必备神器,DTU让数据传输更快更准
    相信很多人小时候都会遇到水电局的工作人员前往家中抄水电表的情况,当时水电表都是安装在自己家里的,而通信技术不像现在这么发达,人工抄表统计也是最基本的方法之一。虽然这种方式简单,但有时候也会有意想不到的效果。比如在刑侦抓捕场景中,都会使用现在还在被广大网民用于调侃的一句......
  • mysql 5.1 chm 优化摘选
    1如果正使用非事务表,不应该使用MySQL来检查列的内容。一般情况,最安全的(通常是最快的)方法是让应用程序确保只向数据库传递合法值;如id=(int)$id2可移植性:如果想要使用Informix或DB2,不应该使用超过18个字符的列名3MySQL在检索和更新MyISAM表记录方面很快,但是在同一个表上混合......
  • 今天帮一朋友导入mysql数据遇到一怪问题,可是到现在都想不明白怎么回事
    xx.sql文件理应是从其它mysql管理系统中导出的,但是让我想不明白的是,为什么field字段之间却使用了圆点(.)来分隔却不是逗号(,);而从这个sql文件中却没有任何的生成此文件的系统注释说明,也让我无从知道这个数据到底从那个平台导出的,导致我测试了n次导入都以为是中文乱码问题,因为......
  • php连接mysql 的错误:用户密码使用了旧版本的加密方式
    CannotconnecttoDatabase,pleasecheckyourconfiguration:错误代号:2000 mysqlndcannotconnecttoMySQL4.1+usingtheoldinsecureauthentication.PleaseuseanadministrationtooltoresetyourpasswordwiththecommandSETPASSWORD=PASSWORD('you......
  • Linux change archive mirror All In One
    LinuxchangearchivemirrorAllInOneLinux/Debian/Ubuntu/RaspberryPiOS$sudoapt-getupdateHit:1http://deb.debian.org/debianbullseyeInReleaseGet:2http://security.debian.org/debian-securitybullseye-securityInRelease[48.4kB]Get:3ht......
  • mysql - 在 MySQL 空间数据库中查找相交区域
    在MySQL数据库中,如何找到完全或部分落在距另一点一定距离内的圆形区域?有很多例子可以找到某个半径内的点,但没有找到与该半径相交的圆形区域。我有一份为某些区域(点和半径)提供服务的承包商列表。客户需要能够根据与他们的距离找到这些承包商。最佳答案我认为您正在寻找......
  • kali linux 基本渗透测试流程
    渗透测试流程1.信息收集阶段网络拓扑结构分析使用nmap扫描目标网络,获取目标主机IP地址和开放端口信息使用whois查询目标域名的注册信息和DNS服务器信息使用nslookup查询目标域名的IP地址和子域名信息使用traceroute获取目标主机的路由信息使用ping测试目标主机的可达......
  • Linux&Nginx16_Nginx反向代理6
    一、概念反向代理代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。首先我们先理解正向代理,如下图: ......
  • GO打包到linux服务器运行
    方法二:本地编译cmd控制台到main.go文件目录下setGOARCH=amd64setGOOS=linuxgobuildmain.go会生成一个没有后缀的二进制文件main将该文件放入linux系统某个文件夹下赋予权限chmod777main最后执行./main就行了。如果想让项目在后台执行:执行nohup./main&,这样......