十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
代码比较长,看了后,提几点建议:
创新互联建站专注于通川网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供通川营销型网站建设,通川网站制作、通川网页设计、通川网站官网定制、微信小程序开发服务,打造通川网络公司原创品牌,更为您提供通川网站排名全网营销落地服务。
既然是要查代码为什么没有达到预期的效果,那么可以将代码各步骤进行分解开。
从代码的功能来看,应该是个建库的代码,那么,要完成一个建库的功能,可能的步骤错误发生之处:
1. 数据库连接不对(用户名、密码错误,没有建库权限等)。
2. 既然是用读取 SQL 文件的形式载入,那么:
a. SQL语句没有编写正确。
b. 文本的编码格式不符(比如ANSI / UTF-8)。
c. 读取SQL后,进行语句处理不正确。
可能还有其他存在错误之处,比如,PHP环境没有设置好、Mysql没有安装配置好等等。
建议你设定断点,然后逐句跟踪调试,这个代码都在一个文件里,跟踪调试比较方便 。
安装的时候是不是改了账号密码,一般默认都是root密码为空。你说没有权限新建,那能查看吧?你看下mysql这个数据库里面的user表。看里面的账号。
1
在XAMPP安装目录下找到config.inc.php文件:*\xampp\phpMyAdmin\config.inc.php,用Dreamweaver等编辑工具打开此文件,找到下面代码:
$cfg['Servers'][$i]['auth_type']
此处表示服务器认证模式。
2
将等于符号右边的值修改切换为"http",保存修改。
3
刷新页面提示需要进行身份验证了。填入用户名密码吧。
注意这里是MySQL用户名及密码,用户名通常为“root”,并不是XAMPP登录账户。
4
通过以上步骤后,一般就有数据库操作权限了。
如果还是不行则有需要关闭浏览器,并清空浏览器缓存,怀疑浏览器记住了root空密码。
再从XAMPP面板上点击“Admin”重新登录管理MySQL。
5
此时进入phpMyAdmin的MySQL主页登录界面。登录后点击数据库,如图,不再提示无权限,可以新建数据库了。
mysql_query($sqlstr) or die("无法创建数据库.");就这里就没有写入数据了
从代码上看,前面的连接数据库的代码应该正确执行了,建库的sql语句也基本正确,那么可能的原因:
你用来登录的用户,没有建立数据库的权限。
当前的用户没有相关的权限,建议用命令行登入,修改权限!!
grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;
权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%’表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。
MySQL命令行能否实现新建用户呢?答案无疑是肯定的。而且在使用使用MySQL命令行新建用户后,还可以为用户授予权限。
首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。
注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。
用户:phplamp
用户数据库:phplampDB
1.MySQL命令行新建用户
//登录MYSQL
@mysql -u root -p
@密码
//创建用户
mysql insert into mysql.user(Host,User,Password) values('localhost','phplamp',password('1234'));
//刷新系统权限表
mysqlflush privileges;
这样就创建了一个名为:phplamp 密码为:1234 的用户。
//退出后登录一下
mysqlexit;
@mysql -u phplamp -p
@输入密码
mysql登录成功
2.MySQL命令行为用户授权
//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@mysql -u root -p
@密码
//首先为用户创建一个数据库(phplampDB)
mysqlcreate database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限
@grant all privileges on phplampDB.* to phplamp@localhost identified by '1234'; //这里需要注意,如果发现找不到用户,需要执行命令 flush privilieges;
//刷新系统权限表
mysqlflush privileges;
mysql其它操作
//如果想指定部分权限给一用户,可以这样来写:
mysqlgrant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表。
mysqlflush privileges;
mysql grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;
权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。
例如:
mysqlgrant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。
mysqlgrant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。
mysqlgrant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
mysqlgrant all privileges on *.* to joe@localhost identified by ‘123′;
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。