原因:
使用mysql -uroot -p 或 mysql-uroot -p -h localhost 会默认去读/var/lib/mysql/**.socket 文件,肯定找不到的,因为你编译之后指定的目录为: /usr/local/mysql
解决办法:
mysql -uroot -p --socket=//usr/local/mysql/***.socket (注释:默认应该是 mysql.socket)
另外一种解决办法:在/etc/hosts中做映射 localhost 和127.0.0.1之间做一下.
mysql有控制哪些地址可以登录的功能,应该是配置了127.0.0.1可以登录,而localhost不能登录。
你可以试下下面的语句:
GRANT all on *.* to 'root'@'localhost' IDENTIFIED by '123456';
flush PRIVILEGES;