Laravel 中 .env 文件,数据库密码中包含(#)或特殊字符引来的问题 
                            
                                                    
                        
                    
                    
  
                    
                    如果 .env 文件中的配置中包含 # 符号的话,如果不做特殊处理会报错
以数据库配置为例:
DB_CONNECTION=sqlsrv
DB_HOST=localhost
DB_PORT=1433
DB_DATABASE=test-monitor
DB_USERNAME=sa
DB_PASSWORD=!Docker_Pwd@Sql_server2022#0625xx
通过 tinker 获取的配置信息:
Psy Shell v0.11.5 (PHP 8.0.17 — cli) by Justin Hileman
>>> config('database.connections.sqlsrv');
=> [
     "driver" => "sqlsrv",
     "url" => null,
     "host" => "localhost",
     "port" => "1433",
     "database" => "test-monitor",
     "username" => "sa",
     "password" => "!Docker_Pwd@Sql_server2022",
     "charset" => "utf8",
     "prefix" => "",
     "prefix_indexes" => true,
   ]
>>>
注意:可以看到数据库密码,后面的
#0625xx字符丢失了。所以会导致数据库链接失败。原因是#符号会屏蔽自身和#后面的字符。
将密码字符加上单引号或双引号
现在数据库配置为:
DB_CONNECTION=sqlsrv
DB_HOST=localhost
DB_PORT=1433
DB_DATABASE=test-monitor
DB_USERNAME=sa
DB_PASSWORD="!Docker_Pwd@Sql_server2022#0625xx"
现在 tinker 获取的配置信息如下:
Psy Shell v0.11.5 (PHP 8.0.17 — cli) by Justin Hileman
>>> config('database.connections.sqlsrv');
=> [
     "driver" => "sqlsrv",
     "url" => null,
     "host" => "localhost",
     "port" => "1433",
     "database" => "test-monitor",
     "username" => "sa",
     "password" => "!Docker_Pwd@Sql_server2022#0625xx",
     "charset" => "utf8",
     "prefix" => "",
     "prefix_indexes" => true,
   ]
>>>
可以看到,密码的字符串完整的保留了,没有屏蔽。
          
                    
                    
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: