我已经通过sudo service mysql status
检查了mysql的状态,并得到了以下输出:
mysql.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)
Active: active (exited) since Fri 2016-07-22 15:06:35 IST; 11s ago
Docs: man:systemd-sysv-generator(8)
Process: 4946 ExecStart=/etc/init.d/mysql start (code=exited, status=0/SUCCESS
Jul 22 15:06:35 ubuntu-lenovo systemd[1]: Starting LSB: Start and stop the mysql
Jul 22 15:06:35 ubuntu-lenovo systemd[1]: Started LSB: Start and stop the mysql
但当我尝试通过终端运行时,它会说:
错误2002(HY000):无法通过套接字连接到本地MySQL服务器'/var/lib/mysql/mysql.sock'(13)
当我尝试使用主机(即mysql --host 127.0.0.1 -uroot
)运行时,它会显示:
错误2003(HY000):无法连接到127.0.0.1'(111)上的MySQL服务器
我已经尝试了SO的几乎所有解决方案。
只需检查my.cnf(mysql配置文件)并从更改
bind-address = 0.0.0.0
至
bind-address = 127.0.0.1
如果你没有这个参数,就添加它。
绑定到0.0.0.0可以让您的mysql在每个配置的IP上都可用,因为您不能只绑定服务器上的两个或三个IP,配置可以是:localhost或所有内容。
然后检查你的/etc/hosts文件,并确保行
127.0.0.1 localhost
接下来,重新启动mysql
service mysql restart
- 使用
$ php -i |grep php'.ini
命令或使用此链接在系统中查找php.ini文件 - 打开php.ini文件
-
并且,请确保这些线路是否存在。
a)
extension=mysql.so
b)extension=pdo_mysql.so
- 如果是,请删除前面的(;)
- 如果不存在,则运行此命令
sudo apt-get install php5-mysql
现在,键入php artisan migrate
命令。我相信你会得到错误
无法通过套接字连接到本地MYSQL服务器
现在,
- 将绑定地址从
localhost
更改为127.0.0.1
- 运行
/opt/lampp/bin/php
- 运行后,如果
"无法加载动态库"
然后,移除php_mssql.dll extension
(对于非窗口)
- 如果没有得到错误,请直接访问项目名称文件夹/config/database.php文件并添加此代码
'unix_socket' => '/opt/lampp/var/mysql/mysql.sock'
找到mysql.sock
的完整路径,并将其添加到
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'danishLara'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => '/opt/lampp/var/mysql/mysql.sock', //Add this line here
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
这可能发生在自制软件安装之后,有时由于权限问题而发生。以下命令修复了我电脑上的相同问题。
sudo chown -R _mysql:mysql /usr/local/var/mysql
sudo mysql.server start