问题一:使用mysql报错-bash:mysql:command not found
mysql -uroot -p
-bash: mysql: command not found
因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时,系统在/usr/bin下面查此命令,所以找不到了
【解决】:
ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接即可
问题二:使用不指定ip方式登录可直接登录,但是使用ip登录报错如下:
【解决】
mysql -uroot –proot --默认方式登录mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.24.179.144' IDENTIFIED BY 'root' WITH GRANT OPTION; --授权登录
【原因深究】
Mysql有两种连接方式:
(1) socket
(2) TCP/IP
#(1)socket是本地连接对应使用,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用。使用的连接文件为/etc/mysql/mysql.sock 。
所以本地访问时, -h只要为空或localhost就可以。
注当改变mysql的外部port也是一样可能正常连接。
因为你在my.ini中或my.cnf中改变端口后,mysql.sock是随每一次 mysql server启动生成的。已经根据你在更改完my.cnf后重启mysql时重新生成了一次,信息已跟着变更。
#(2)使用TCP/IP连接前要先授权,否则不允许访问,授权的方式就是
mysql -uroot –proot --默认方式登录mysql GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.24.179.144' IDENTIFIED BY 'root' WITH GRANT OPTION;--授权登录 |
延伸阅读,在mysql的配置文件中可看到这两个相关的配置文件: