Bro*_*oks 15 mysql macports osx-snow-leopard
我设法让我的安装全部搞砸了,因为我是一个新手,搞砸是我擅长的.
1)任何人都可以为这些东西参考一套可靠的设置说明吗?
2)我可以通过macports卸载并从头开始(密码和所有)吗?在尝试unistall,WTF之后,我尝试了一堆mysql目录!
3)mysqld.sock需要驻留在哪里以及我需要应用哪些文件设置才能让它与php5和apache2一起玩得很好?它是否存在于/ tmp或/ opt/local/var/run/mysql5 /中?我需要配置/opt/local/etc/php5/php.ini吗?选择/本地的/ var/DB/PHP5/mysql.ini?/opt/local/etc/mysql5/my.cnf?
4)我运行了> sudo -u mysql mysql_install_db5.如果我再次运行它会搞砸我吗?我运行了mysqladmin -u root密码'mypw',并收到一条错误消息,指出mysql无法通过套接字连接.这是否意味着我的密码现已设置?我有办法告诉你吗?
5)密码语句的语法从博客变为博客.我的密码是'mypw'还是mypw(没有引号)?(我的密码实际上不是mypw)
6)启动和停止mysql的适当命令是什么?我的机器启动时我不希望它启动.
谢谢Jergason,这非常有帮助.
我真的希望与mysql的macports安装保持一致,因为它限制了我可以对我的机器造成的伤害.
所以现在突出的问题是......
1)macports mysql安装的默认套接字位置是什么?
2)启动和停止mysql的适当命令是什么?我的机器启动时我不希望它启动.一些博客说使用launchctl -load其他人说sudo/path/mysql_safe5.如果您没有设置密码(因为我不打算),您是否需要使用-user -p参数?
3)使macports mysql正常工作所需的目录所有权和权限是什么.似乎macports没有设置任何一个.
Nerdling
检查/ tmp是否为MacPorts mysql套接字
没用.如前所述,我知道/ tmp是套接字的默认位置.我的问题是,当我尝试启动mysql时套接字没有实现,也没有出现在/ opt/local/var/run/mysql5 /中.这告诉我启动mysql有问题,这意味着设置有问题.可能是什么,我不知道.我担心我不是天生具有这种事物的先验知识.
- 在Snow Leopard下使用macports进行mysql5安装的套接字应该是什么SPECIFIC目录?
如果你正在使用5个不同网站的关于如何运行mysql的提示,你会感到惊讶,你已经迷失了......好吧,我只是试着一次只关注一个网站并在之前退出所有更改去下一个.
没用.我完全按照你的建议开始做了.你觉得我做了什么,混合搭配5个博客的说明?这就是我询问干净卸载的原因.我想知道先前安装的状态更改是否会影响将来的"干净"安装.
- 什么SPECIFIC博客描述了使用Snow Leopard下的macports确认的mysql5安装程序.
我认为你使用MacPorts mysql唯一的问题(你有什么问题?)是它有一个你不期望它的套接字,并且它使用默认配置.
没用.我也是,看我原来的帖子.我认为问题在于mysql是如何启动的(或者没有启动).
- 您对如何解决问题有任何具体的建议吗?
这应该在MacPorts完成安装后解释.
没用.它不是,或者如果是的话,我没有看到它.也许是因为我在使用Porticus.
-你可以再详细一点吗?在什么时候我应该看到什么消息?
请参阅$ {prefix}/share/doc/mysql5 /获取想法和/或联系开发人员列表.还要考虑联系端口的维护者; 自从他们管理它们以来,他们可能最了解它.
没用.RTM,谷歌是你的朋友,所有这一切.是的,先去那里.虽然我承认我可能忽略了一些事情,因为当我确定我的问题很简单时,我还有其他工作要做的时候,我不想花几天时间阅读一些写得不好的文档.
我希望像Jergason提供的一些简单,专注的帮助.我(和其他人读到这篇文章)赞赏杰格森愿意传达他的知识,以加速新技术人员的学习过程.对他来说,知识是基本的,但对于新来者来说,这是一个节省大量时间.智力的真正标志是理解技术知识不是先验的,即使是基本的帮助也是非常有帮助的.再次感谢J-man.
Dan*_*mes 13
我自己刚刚安装了mysql5,因为这总是很痛苦,所以我注意到了我遵循的过程.这是在Leopard上完成的,但我想雪豹和狮子的过程是一样的.它没有回答所有原始问题,但至少它是一个指南.
首先,安装mysql5服务器:
sudo port install mysql5-server
Run Code Online (Sandbox Code Playgroud)
只是安装mysql5不会安装服务器.
注意控制台输出,它包括设置macports的说明.您可能希望将其复制并粘贴到文本文件中.以下是基于它的.
相反的mysql5-server,你可以使用一个端口,例如mysql55-server,mysql56-server,mariadb-server或percona-server得到一个较新版本的MySQL,或叉子.如果这样做,请注意控制台输出,因为以下说明基于mysql5-server并且需要调整以使用正确的可执行文件和路径.
如果这是新安装,请设置数据库:
sudo -u _mysql mysql_install_db5
Run Code Online (Sandbox Code Playgroud)
这会输出一些通用指令,我认为这些指令并不完全适用于macports.在我看来,加载mysql5作为守护进程的最佳方法是使用macport的方法:
sudo port load mysql5-server
Run Code Online (Sandbox Code Playgroud)
除了启动mysql5之外,还会永久加载它 - 它将在启动时运行.要稍后停止:
sudo port unload mysql5-server
Run Code Online (Sandbox Code Playgroud)
如果您不想将其作为守护程序运行,可以在命令行运行它:
sudo /opt/local/lib/mysql5/bin/mysqld_safe
Run Code Online (Sandbox Code Playgroud)
通过在命令行登录来检查它是否正在运行:
mysql5 -u root -p
Run Code Online (Sandbox Code Playgroud)
默认情况下,密码为空,因此只需在出现提示时按Enter键.设置root密码:
/opt/local/lib/mysql5/bin/mysqladmin -u root password 'correct horse battery staple'
Run Code Online (Sandbox Code Playgroud)
设置macports php和本机php安装的说明如下.
假设你已经安装并运行了macports php.你需要安装php5-mysql(或类似的东西php54-mysql取决于你正在使用的PHP版本):
sudo port install php5-mysql
Run Code Online (Sandbox Code Playgroud)
这将安装mysql,mysqli和pdo驱动程序.
现在看看你的/opt/local/etc/php5目录,如果你不已经有一个php.ini配置文件拷贝或者php.ini-development或php.ini-production来php.ini.现在编辑php.ini并搜索要添加的相应行:
pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
Run Code Online (Sandbox Code Playgroud)
和:
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
Run Code Online (Sandbox Code Playgroud)
和:
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
Run Code Online (Sandbox Code Playgroud)
如果您不想配置这些,可以在连接时在PHP脚本中明确设置它们.
如果您在连接时遇到问题,可能需要查看附近的其他设置,并与之进行比较php.ini-development并php.ini-production查看已更改的内容.
然后使用下面的脚本,或类似的测试,你可以用PHP连接.
OS X的php内置了mysql和mysqli支持(但不是pdo),所以你需要做的就是设置macport unix socket.默认位置是/opt/local/var/run/mysql5/mysqld.sock.找到正确的位置/etc/php.ini(如果您还没有,请从中复制/etc/php.ini.default)添加:
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
Run Code Online (Sandbox Code Playgroud)
和:
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
Run Code Online (Sandbox Code Playgroud)
如果您不想配置这些,可以在连接时在PHP脚本中明确设置它们.
这是一个用于检查它是否可以连接的php脚本.显然,您通常不会在php脚本中使用root帐户,因此您可能需要先创建另一个mysql帐户来测试连接.PDO连接不适用于本机php,因为它没有PDO驱动程序.
<?php
$username = 'root';
$password = 'correct horse battery staple';
/* Try mysql: */
$connection = mysql_connect('localhost', $username, $password);
if ($connection === FALSE) {
echo "Error connecting using mysql.\n\n";
echo "Error ".mysql_errno().": ".mysql_error()."\n\n";
}
else {
echo "Connected using mysql.\n\n";
mysql_close($connection);
}
/* Try mysqli: */
$connection = mysqli_connect('localhost', $username, $password);
if ($connection->connect_error) {
echo "Error connecting using mysqli:\n\n";
echo "Error ".$connection->connect_errno.": ".$connection->connect_error."\n\n";
}
else {
echo "Connected using mysqli.\n\n";
$connection->close();
}
/* Try pdo:
* Won't work for the version of php supplied with OS X. */
try {
$pdo = new PDO('mysql:host=localhost', $username, $password);
echo "Connected using PDO.\n\n";
$pdo = null;
}
catch(PDOException $e) {
echo "Error connecting using PDO:\n\n";
echo "Error ".$e->getCode().": ".$e->getMessage()."\n\n";
}
Run Code Online (Sandbox Code Playgroud)
1) Hivelogic有一个关于从源代码为 Snow Leopard 编译 mysql 的精彩演练。其实并没有那么难,如果你自己做了,你就会知道它在哪里。
2)你应该能够运行sudo port uninstall mysql5。它可能会因为依赖关系而对你大喊大叫。如果是这样,您必须先卸载它们。卸载 MySQL 应删除所有配置设置,包括密码。
3)mysqld.sock需要驻留在哪里以及我需要应用哪些文件设置才能让它与php5和apache2很好地配合?mysqld.sock 的位置不如它的路径重要。您在 php.ini 文件中设置 mysqld.sock 的路径。如果 /opt/local/bin 中有 php.ini 文件,那么您安装了 php 的 macports 版本。您可以使用该版本,也可以使用默认的 Apple 版本。无论哪种方式,您都需要配置 php.ini 文件,以便告诉您的 php 安装在哪里使用它。你的 php.ini 文件中应该有一行内容:
mysql.default_socket = <whatever>
Run Code Online (Sandbox Code Playgroud)
如果不存在,您可以添加它。您应该将此行设置为等于 mysqld.sock 的位置。我的看起来像这样:
mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
您的 Apache 配置
4)我已经运行> sudo -u mysql mysql_install_db5。如果我再次运行它,它会弄乱我吗?我运行 mysqladmin -u root 密码 'mypw' 并收到错误消息,指出 mysql 无法通过套接字连接。这是否意味着我的密码现已设置?有什么办法可以告诉我吗?如果您无法连接到套接字,则说明您的密码尚未设置。
5) 密码语句的语法因博客而异。我的密码是“mypw”还是 mypw(不带引号)?(我的密码实际上不是 mypw)您不需要在命令行中将密码引起来。