linux下mysql连接不成功的疑惑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下mysql连接不成功的疑惑相关的知识,希望对你有一定的参考价值。

可是在浏览器中输入http; else echo "local/ ;测试mysql连接状况 $a=mysql_connect("localhost"://localhost/mysql。 谢谢?php /。连接语句如下 <://localhost/mysql:Fatal error;);root",";;.php on line 3 请求高手赐教;;连接成功"mysql;/ 在zendstudio中测试是成功?>.php时却连接不成功;htdocs/apache2/,提示如下,"usr/: Call to undefined function mysql_connect() in /"连接失败" if ($a) echo "1

参考技术A PHP没配置对
错误代码
的大意是:最高错误:不能调用未找到的函数mysql_connect()
如果是数据库未链接成功的话
$a
应该返回
false

Linux下安装Mysql5.7数据库和远程连接

Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的难题,而且很多时候按照教程也没有能够安装成功,安装过程出现各种各样的错误。

下面记录了我在Linux环境下安装Mysql的完整过程,如有错误或遗漏,欢迎指正。

 

一 安装前准备

以下1-3步操作是如果安装过MySQL的操作,如果是没有安装过,直接从第4步操作开始;

 

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

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

从执行结果,可以看出我们已经安装了mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令

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

再次执行查询命令,查看是否删除

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

2、查询所有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 /]# 

3、检查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 /]# 

4、从官网下载是用于Linux的Mysql安装包

下载命令:

[root@localhost /]#  wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

 

这个是我安装的截图,

也可以直接到mysql官网选择其他版本进行下载。

二 安装Mysql

1、在执行wget命令的目录下或你的上传目录下找到Mysql安装包:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
执行解压命令:


解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到/usr/local/mysql
执行移动命令:

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

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

因为提示invalid user : 'mysql:mysql'

那么就是没有创建用户和用户组,先检查是否存在,不存在则创建

用户和用户组创建好之后再执行权限分配指令

 

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

补充说明:

此时可能会出现错误:

出现该问题首先检查该链接库文件有没有安装使用 命令进行核查

检查不存在,则安装,安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误:

 

执行如下命令后,再次运行数据库的初始化命令:

再执行初始化命令,结果发现还是不行,我就各种百度,有很多的方法,我都尝试了一下,如下:

最后,我发现安装了libaio之后,还是提示不存在,然后看到网上说有一种方法,直接执行

yum -y install libaio*   我抱着试一试的心态执行了一下,执行竟然确实下载了

下载安装成功之后,我再执行数据库初始化的命令,既然成功了,我总结原因,可能是因为需要安装的libaio,之前并不是安装的所以,还差一些所需要的文件

记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。

6、编辑配置文件my.cnf,添加配置如下,具体详细的一些配置文件的配置方法,大家也可以百度,会有更加全面的

[root@localhost bin]#  vi /etc/my.cnf

[mysqld]
basedir=/usr/local/mysql
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

7、启动mysql服务器

[root@localhost /]# /usr/local/mysql/support-files/mysql.server start

显示如下结果,说明数据库安装成功

但是很不幸的是,我出现的不是成功,而是失败了,出现了以下错误

那么,出现问题,就来解决问题吧!但是这个问题,真的是让我解决了好久

首先,就这个问题,我先发一个链接吧,就是网上说的解决这个办法的文章,写得还比较全面的,我直接粘贴过来;

https://blog.csdn.net/shoubuliaolebu/article/details/44979147

按照文章的各种方法我都进行 了测试,都还是不行,还是会报错,最后我好好想了一下,既然进程没问题,我也是第一次安装,包括网上说的文件什么,还有/etc/my.cnf也不存在什么skip-federated字段,权限我也是开了的,那么可能还是我的my.cnf配置文件没弄对,最后找了一个方法,说是要给my.cnf的配置文件加一个--user=root到mysqld_safe,我抱着试一试的心态,编辑保存,再重新启动,结果成功了,真的不知道用什么话来形容了,各种方法找遍了,最后还是配置文件的问题,截图给大家看吧;

 

 

这句话的意思就是让linux安全打开我的mysql,之后再执行我的启动

显示成功!

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

[root@localhost /]#  ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
[root@localhost /]#  ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost /]#  service mysql restart

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

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

在登录这个地方,我又遇到了一个问题,提示我找不到mysql.lock文件

我执行了find  -name  mysql.sock出现以下结果

就是登录显示不成功,百度了一下,发现给当前地址的文件和默认的文件一个软连接就成功了,如下:

修改密码:

 

10、开放远程连接

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

update user set host='%' where host='localhost';

是设置远程连接的

设置让所有都可以访问:

grant all privileges on *.* to 'root'@'%' identified by '你的密码';

flush privileges;

通过上述命令完成:

①第一个*表示允许访问的数据库名称,第二个*表示允许访问的表名称。如果都*,表示所有。

②root代表远程登录使用的用户名,可以自定义

③%代表允许任意ip登录,如果你想指定特定的IP,可以把%替换掉就可以了

④password代表远程登录时使用的密码,可以自定义

⑤flush privileges; 这是让权限立即生效

service mysql restart

 

到这里,安装启动配置就已经完成了!

接下来,就可以使用navicat进行连接我们的mysql数据库,但是一定要先打开我们的服务器端口,切记!

我自己就在这个问题上搞了一两个小时,各种找问题,后来才想起来,是因为我的服务器端口没开

好了,文章到这里,简单的配置和启动与远程连接也就结束了!如果还需要再多学习一些,等待下一次更新,

有疑问或者需要增加的,可以留言!

 



 

以上是关于linux下mysql连接不成功的疑惑的主要内容,如果未能解决你的问题,请参考以下文章

ASPX注册网页与LINUX的MYSQL如何连接?

linux下mysql_connect能连接数据库 mysql_select_db却用不了

linux下应用mysql数据库c编程,出现段错误求解!

火山安卓连接不上mysql 但是navicat能连接成功?

连接linux系统mysql数据库 connection time out

Linux下mysql允许远程连接怎么设置