Na linguagem PHP, a seguinte linha de código$c = mysqli_connect("localhost", "mysql_user","mysql_password", "db_name", null,"/tmp/mysql.sock");tenta efetuar uma conexão a um servidor de banco de dados MySQL.Assinale a alternativa correta, considerando a execução no sistema operacional Linux.
AO servidor de destino da conexão está especificado de forma incorreta, e a execução dessa linha provocará um aviso do tipo invalid argument.
BTenta-se conectar por TCP/IP em localhost, onde o arquivo local /tmp/mysql.sock contém o número da porta TCP a ser utilizada.
CTenta-se conectar por TCP/IP em um servidor remoto cujo nome ou endereço IP é especificado no arquivo /tmp/mysql.sock.
DTenta-se conectar em localhost por um UNIX socket identificado por /tmp/mysql.sock.
ETenta-se conectar via UNIX socket em um servidor remoto cujo nome ou endereço IP é especificado no arquivo /tmp/mysql.sock.
Revelar gabarito e comentário▾
GabaritoD — Tenta-se conectar em localhost por um UNIX socket identificado por /tmp/mysql.sock.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Conexão MySQL com PHP: mysqli_connect e socket Unix
Gabarito: letra D. A função mysqli_connect com o primeiro argumento "localhost" e o último argumento "/tmp/mysql.sock" estabelece uma conexão via Unix socket (não TCP/IP) para o servidor local, exatamente como descrito na alternativa D. A assinatura da função é mysqli_connect(host, username, password, database, port, socket). Quando o host é "localhost" e um socket é explicitado, o PHP ignora a porta e utiliza o arquivo de socket Unix para a comunicação.
1Host = 'localhost'
2Socket = '/tmp/mysql.sock'
3Usa Unix socket (não TCP/IP)
4Conexão local
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
A linha de código é válida; não há argumento inválido. O formato dos parâmetros está correto e a função tentará a conexão sem gerar aviso "invalid argument".
Alternativa B — ❌ Incorreta
O arquivo /tmp/mysql.sock não contém o número da porta TCP. Ele é o caminho do socket Unix. Quando o host é "localhost" e um socket é fornecido, a conexão não utiliza TCP/IP.
Alternativa C — ❌ Incorreta
A conexão não é para um servidor remoto, pois o host é "localhost". Além disso, o arquivo de socket não contém nome ou IP do servidor; ele é o ponto de comunicação local.
Alternativa D — ✅ Correta ⟵ GABARITO
A função tenta conectar-se ao servidor MySQL rodando em localhost através do Unix socket localizado em /tmp/mysql.sock. Esse é o comportamento esperado: em sistemas Unix/Linux, quando o host é "localhost" e o parâmetro socket é informado, a extensão mysqli utiliza o socket Unix.
Alternativa E — ❌ Incorreta
A conexão não é remota (host = "localhost") e o arquivo de socket não especifica servidor remoto. O socket Unix só funciona localmente.
NÃO CAIA NESSA!
A banca tenta confundir o candidato sobre o tipo de conexão (TCP/IP vs. Unix socket) e o significado do arquivo de socket. Lembre-se: com host "localhost" e socket explícito, a comunicação é via socket Unix, não TCP. O arquivo não guarda IP ou porta.