mac/Linux系统下alias和ln命令[-bash: mysql: command not found解决办法]

难得有闲时间,这段在家休息的时间里想再来研究下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的持久化也是有方法的,如下↓

  1. 若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
  2. 若要让每一位用户都生效别名,则把别名加在/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下

这样问题就解决了。

你可能感兴趣的:(数据库,mysql集群,linux,运维)