linux下配置mysql的远程访问

最近,笔者原先的虚拟机经常宕机,被逼将原先虚机上的项目迁移至新环境中。在新的环境中安装apache,mysql等,安装后需要配置一下mysql的远程连接。

由于笔者的linux没有系统的学过,在设置的过各中犯了一个很严重的错误的,最后导致远程ip可访问数据库,但本地root确无法访问了。在此备注一份文档。

笔者当时的操作十分简单,一共四步

(1)进入mysql,指令:   mysql-u root -p

(2)使用数据库,指令: use mysql;

(3)更新用户表,指令: UPDATE user SET `Host` = ‘%‘ WHERE `User` = ‘root‘ LIMIT 1;

(4)刷新,指令: flush privileges;

在此,最重要的一步是第三步,指令的意思是更新user表,将user名为root 的第一条数据里的host变为%,而这个%代表着允许其它 的ip访问。

笔者想当然的以为%包含 了所有的ip,包括localhost。但是其实不然,这么做的后果是,其它的ip都可以再访问,唯独本地的root用户不能再访问。

如果对mysql使用有一点心得的都知道,mysql的用户名和密码其实在mysql里本身也是有一张table存储着的,这个表就位于mysql库下的user表。

这个表的结构如下所示:

细心的朋友们会发现,平时我的用的root账号,其实是[email protected],是由host和user两部分合成,那上面的第三步错在哪里,错在它无意间去掉了localhost的权限。

select * from user,即可查看user下的数据,读者亲试即可。

临时有事暂未写完,稍后给出完整的方案。

时间: 2024-10-03 09:08:47

linux下配置mysql的远程访问的相关文章

Linux下配置Mysql允许远程访问

操作非常简单,就5步骤,如下: 1.进入 mysql: ? 1 /usr/local/mysql/bin/mysql -u root -p 2.使用 mysql库 : ? 1 use mysql; 3.查看用户表 : ? 1 SELECT `Host`,`User` FROM user; 4.更新用户表 : ? 1 UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1; 5.强制刷新权限 : ? 1 flush privileges

Linux下配置Mysql允许远程访问详解

操作非常简单,就5步骤,如下: 1.进入 mysql: /usr/local/mysql/bin/mysql -u root -p 2.使用 mysql库 : use mysql; 3.查看用户表 : SELECT `Host`,`User` FROM user; 4.更新用户表 : UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1; 5.强制刷新权限 : flush privileges; 完成以上步骤即可远程连接数据库了,上

linux 下配置mysql区分大小写(不区分可能出现找不到表的情况)怎么样使用yum来安装mysql

Linux 默认情况下,数据库是区分大小写的:因此,要将mysql设置成不区分大小写 在my.cof 设置 lower_case_table_names=1(1忽略大小写,0区分大小写) 检查方式:在mysql控制台中输入如下命令 show variables like 'lower%'; linux下查找mysql安装路径: whereis mysql yum 安装mysql: linux下使用yum安装mysql,以及启动.登录和远程访问. 1.安装 查看有没有安装过: yum list i

[error handle]Linux下配置mysql的编码

mysql的默认编码是latin1,对汉字的支持不好,需要编辑配置文件,设置mysql的默认编码. 这个过程网上的教程很多,大家可以参考 mysql 修改编码格式 MySQL修改编码设置及乱码问题 linux下的mysql配置修改 途中碰到了好几个坑,真是恶心的不行. 坑1,找不到my.cnf文件 教程里说linux下mysql配置文件的路径在/etc/my.cnf,然而找不到. 百度了一下,说是有可能出现这种情况.囧,有经验的话还可以自己写一个.然而我没经验. 控制台下输入"find / -n

linux下配置mysql

1.下载mysql wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-el7-x86_64.tar.gz 2.检查linux是否安装mariadb数据库,mariadb数据库是mysql的分支 yum list installed | grep mariadb 如果linux中安装mariadb数据库,可能与安装mysql数据库发生冲突 yum -y remove mariadb   (mariadb是前面检测出来的软件包)

linux下配置mysql主从

为了做实验方便,我们在同一台机器上配置两个MySQL服务(开两个端口)  1.安装.配置MySQL 事先已经安装好mysql: [[email protected] ~]# cd /usr/local/ [[email protected] local]# cp -r mysql/ mysql_2 [[email protected] local]# cd mysql_2/ 初始化mysql2,如果出现两个 "OK" 并且生成/data/mysql2目录说明正确: [[email pr

Linux下配置mysql允许指定IP远程访问

一.Mysql允许指定IP远程访问 1.登录 mysql -u root -p 之后输入密码进行登陆 2.查看用户表 首先要先指定使用mysql数据库,然后再进行查询操作 //进入mysql数据库mysql> use mysql myql> select Host,User from user; 下面的列表就是查询user表后可以访问数据库的指定的Ip地址 3.权限设置及说明 3.1.使用grant all privileges on来更改用户对应某些库的远程权限 语法模板 grant all

linux下配置mysql解析 遇到新问题两个。

下载mysql到/usr/local/src/ cd /usr/local/src/wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz 解压 [[email protected] src]# tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz 把解压完的数据移动到/usr/local/my

linux下配置mysql和mysql初始化

下面是正常初始化后提示的信息,这篇文章很重要 [[email protected] scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql ##指定mysql安装路径,指定数据文件夹data路径,指定用户初始化 WARNING: The host 'dataserver' could not be looked up with resolve