难得有闲时间,这段在家休息的时间里想再来研究下swoole。在mac中我之前开发PHP时使用的是PHP集成开发环境mamp pro。但是无奈mac系统自带的PHP安装Swoole扩展有点儿不方便,连pecl,phpize都没有,所以打算自己编译安装PHP、mysql、Nginx来做开发。第一步是安装mysql服务,下载了官方的dmg安装包安装后mysql命令显示没有该命令。仔细研究了下,是因为mysql执行文件安装的位置不同。有很多解决方案,一个是alias一个是ln,下边就这两个方案一一说明。
dmg安装mysql后续
weiyongqiangdeMacBook-Pro:bin mars$ mysql
-bash: mysql: command not found
其实使用mysql官方的dmg包安装后之所以出现命令没有找到的问题是因为mysql安装后可执行文件mysql并不在/usr/bin或者/usr/sbin下。
寻找安装后的mysql所在位置
weiyongqiangdeMacBook-Pro:bin mars$ sudo find / -name mysql
/usr/local/mysql
/usr/local/mysql-8.0.2-dmr-macos10.12-x86_64/bin/mysql
/usr/local/mysql-8.0.2-dmr-macos10.12-x86_64/data/mysql
/usr/local/mysql-8.0.2-dmr-macos10.12-x86_64/include/mysql
两种解决办法
alias建立别名:
weiyongqiangdeMacBook-Pro:bin mars$ alias mysql=/usr/local/mysql/bin/mysql
weiyongqiangdeMacBook-Pro:bin mars$ mysql
ERROR 1045 (28000): Access denied for user 'mars'@'localhost' (using password: NO)
这种方法有一个缺点就是alias创建的别名是暂时的,也就是说当我们关闭命令行工具后再次打开运行mysql命令又显示-bash: mysql: command not found。当然对于alias的持久化也是有方法的,如下↓
- 若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
- 若要让每一位用户都生效别名,则把别名加在/etc/bashrc最后面,然后# source /etc/bashrc
建立符号链接[推荐]:
这种方法也是常用的方法,关于符号链接和硬链接的关系和区别大家可以自己去查看资料。
weiyongqiangdeMacBook-Pro:bin mars$ ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
因为mac启动了rootless所以将/usr/local/mysql/bin/mysql符号链接到了/usr/local/bin/mysql下
这样问题就解决了。