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连接不成功的疑惑的主要内容,如果未能解决你的问题,请参考以下文章
linux下mysql_connect能连接数据库 mysql_select_db却用不了