MySQL的程序如何运行?

MySQL的程序如何运行?,第1张

你的问题太泛泛了,“MYSQL的程序”你指的是什么?是MYSQL的 存储过程??您最好是具体问题具体问,你这样提问的话大家都不知道你想要什么!

mysql>soure example.sql里的soure写错了应该是source!!!!example.sql是你实现先编辑好的文本内容,内容可以是创建一个数据库,然后再数据库下建立一个或多个数据表,再往表里插入一些记录!!然后再写个存储过程完成一些简单的功能,比如把A表里的内容插入到B表等等(可以加内容存在就修改不存在就插入等判断)!!建立一个.SQL文件就是为了方便!!随便举个例子:在D盘根目录下用记事本建立个example.sql文件,内容如下:

CREATE database name

use name

CREATE TABLE a (

user_idint(11) DEFAULT NULL,

name char(11) DEFAULT NULL,

UNIQUE KEY USER_ID (user_id)

)

insert into a (user_id,name) values (1,'aaa'),(2,'bbb')

CREATE TABLE b (

user_idint(11) DEFAULT NULL,

name char(11) DEFAULT NULL,

UNIQUE KEY USER_ID (user_id)

)

insert into b (user_id,name) values (1,'xxx'),(3,'ccc')

DELIMITER $$

DROP PROCEDURE IF EXISTS qq$$

CREATE PROCEDURE qq()

begin

declare p_user_id varchar(6)

declare p_name varchar(6)

declare cursor_flag int default 0

declare user_nrb cursor for select user_id,name from a

declare continue handler for sqlstate '02000' set cursor_flag = 1

open user_nrb

repeat

fetch user_nrb into p_user_id,p_name

if not cursor_flag then

if not exists (select * from b where user_id=p_user_id) then

insert into b(user_id,name)values(p_user_id,p_name)

else

update b set name=p_name where user_id=p_user_id

end if

end if

until cursor_flag end repeat

close user_nrb

end$$

DELIMITER

顺序是建立名为name的数据库,其下建立俩表A和B,为A表插入用户1和2,为B表插入用户1,3!!再建立名为QQ的存储过程,功能是把a表的用户导入到B表,如果A的用户号再B里没有直接插入,如果A里的用户号已经在B表里了那就改变B表里相应用户的名字!!大概是这么个过程!!在MYSQL自带的客户端导入刚才建立的example.sql文件,顺序是:开始——程序——MYSQL——MYSQL SERVER5.1——MYSQL COMMAND LINE CLIENT 窗口里输入ROOT用户密码在光标处输入source d:\example.sql!!最后再执行存储过程,敲call qq回车!!!

验证方法是敲select * from b回车!!可以发现B表由本来插入的2条记录变成3条记录,而且用户1的名字也从xxx变成aaa了!!!!

希望对你有帮助!另外最重要的是MYSQL有一些很好的图形界面客户端工具,不用这个DOS界面的东西,下载个sqlyog什么的软件装上,基本一启动就会用了的东西!在SQLYOG的界面直接把example.sql里的内容复制过来粘贴后按F5键运行即可!!!

1、首先,我们需要修改mysql的配置文件,一般文件存放在/etc下面,文件名为my.cnf。

2、对于mysql服务的启动,我们通常使用命令service mysqld start,没问题的话就能启动mysql服务了。

3、如何判断mysql服务有没有启动成功了,一个是通过查看进程的方式,我们使用命令ps -ef|grep mysqld,来查看。

4、当然,更为稳妥的方法是使用命令mysql -uuser -p passwd 来进行连接,看看是否能接上。

5、如何停止mysql的服务呢。方法也很简单,使用命令:service mysqld stop命令即可。

6、一般,如果mysql服务没有启动成功,可以通过查看错误日志的方式,日志默认路径/var/log/mysqld.log,

7、完成效果图。

启动Mysql提示ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxxx.local.pid).

1、查看mysql错误日志:打开/usr/local/var/mysql/xxxx.err或者xxxx.local.err文件。

2、问题应该是某个程序占用了mysql的默认端口3306。

3、查看端口使用情况lsof -i:3306,发现是一个用户名为_mysql启动了mysqld指令占用了3306,感觉现象非常奇怪,不清楚为什么会有这个用户组,为什么会启动mysqld,由于这个电脑是公司其他同事转移资产到的我名下,所以有可能是之前用户或者公司it装了什么服务导致的。

4、首先尝试干掉进程:sudo kill xxxx,结果发现当kill后,还会重新启动。

5、尝试修改mysql默认启动端口,Baidu上有人告诉修改/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist文件

添加<string>--port=3307</string>保存,先重新启动mysql服务,发现问题依然存在,发现配置没有起作用,默认端口依然是3306,然后考虑重新启动电脑,看看是否可以修改占用默认端口的配置。

6、重启后再次查看3306端口占用情况,发现确实不存在了。但是发现启动mysql服务时,依然存在问题:

仔细观察发现,这个占用和plist中的mysql配置一样的,所以可以确定每次启动计算机后,会按默认配置执行一个mysqld。

7、不清楚为什么会按com.oracle.oss.mysql.mysqld.plist配置执行mysqld,于是把注意力放在了Mac启动上。

8、Mac的启动原理是:

看到这里就明白了,原来LaunchDaemons里面放的是Mac启动时的一些启动服务,

9、System/Library和/Library和~/Library目录的区别:

10、System/Library和/Library和~/Library目录的区别:

11、有了上面的结果,于是把注意力放在了com.oracle.oss.mysql.mysqld.plist上,每个Mac启动中都有么,这个是如何添加的。首先查看了家里的其他苹果电脑,发现都没有这个plist文件,于是开始研究这个文件的产生原因。

12、经过Baidu怀疑这个文件应该是之前用dmg安装包安装的mysql产生的,在设置中也发现了残留信息

于是果断把自动启动去掉,重启计算机。

13、重启后,发现无论是3306还是3307端口上都没有mysql服务了,于是运行mysql.server start,这次终于看见了Starting MySQL . SUCCESS!

14、删除com.oracle.oss.mysql.mysqld.plist文件,重启电脑后,发现设置中仍然还有MySQL的控制选项。

15、MySQL dmg安装方式的卸载方法:

至此,这个问题算是完美解决了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11717945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存