Índice
1. Instale o MySQL usando o gerenciador de pacotes
2. Configure as opções de segurança do MySQL
3. Defina o usuário root para autenticar com uma senha (opcional)
Em terceiro lugar, expanda o conhecimento
1. Como modificar a política de senha do MySQL?
2. Implemente o código de teste para conectar ao banco de dados MySQL
Um , o meio ambiente
- VMware® Workstation 16 Pro (versão: 16.1.2 build-17966106)
- ubuntu-22.04.2-desktop-amd64
Dois , etapas de instalação
1. Instale o MySQL usando o gerenciador de pacotes
- Para sistemas Ubuntu/Debian, use o comando apt-get para instalar:
- sudo apt-get update
- sudo apt-get install mysql-server
- Para sistemas CentOS/RHEL, use o comando yum para instalar:
- atualização sudo yum
- sudo yum instalar mysql-server
- Após a conclusão da instalação, o serviço MySQL será iniciado automaticamente. Verifique o status do serviço MySQL com o seguinte comando:
- sudo systemctl status mysql
- Se o serviço MySQL não iniciar automaticamente, você pode iniciar manualmente o serviço MySQL:
- Para sistemas Ubuntu/Debian, use o seguinte comando:
- sudo serviço mysql start
- Para sistemas CentOS/RHEL, use o seguinte comando:
- sudo systemctl iniciar mysql
- Você pode verificar se o serviço MySQL está em execução com o seguinte comando:
- sudo systemctl is-active mysql
- O comando para parar o serviço MySQL é o seguinte:
- sudo systemctl parar mysql
2. Configure as opções de segurança do MySQL
- Para MySQL 5.7 e superior, execute o seguinte comando para configuração inicial: (Este comando solicitará que você defina a senha do usuário root do MySQL e outras opções de segurança)
- sudo mysql_secure_installation
- Em seguida, pergunte se deseja configurar o componente de verificação de senha, digite y
- Em seguida, exibirá a força de escolha para definir a senha, digite 0
- Pergunte se você deseja remover o usuário anônimo, digite y ( após selecionar a força da senha na etapa anterior, haverá um processo de digitação da senha a ser definida, mas pule-o diretamente, consulte a próxima seção para saber o motivo )
- Pergunte se deseja desabilitar o usuário root para login remoto, digite y
- Pergunte se deseja excluir o banco de dados de teste e acessá-lo, digite y
- Perguntar se deseja recarregar a tabela de permissões significa que as configurações feitas até agora terão efeito imediato. digite y
- Por fim, aparece All done, indicando que a configuração está concluída!
- Após a conclusão da instalação, você pode efetuar login no servidor MySQL através do seguinte comando (neste momento, a autenticação é realizada através do plug-in auth_socket)
- sudo mysql
3. Defina o usuário root para autenticar com uma senha (opcional)
- Ao configurar as opções de segurança do MySQL, após escolher definir a força da senha, a etapa de digitação da senha é pulada diretamente e o conteúdo da caixa vermelha é exibido da seguinte forma
- Isso ocorre porque no MySQL, por padrão, o usuário root é autenticado usando o plug-in auth_socket em vez de usar uma senha. O plug-in auth_socket autentica as credenciais do usuário por meio de um arquivo de soquete Unix. Portanto, não é necessário definir uma senha para o usuário root se estiver usando o plug-in auth_socket para autenticação.
Se você deseja autenticar com uma senha para o usuário root, siga estas etapas:
- Faça login no MySQL como usuário root (autenticação por meio do plug-in auth_socket neste momento):
- sudo mysql
- Após o login, mude para o banco de dados do sistema MySQL:
- USE mysql;
- Atualize o método de autenticação do usuário root para usar o plug-in mysql_native_password: (substitua your_password pela senha do usuário root, que deve ter pelo menos 8 caracteres)
- ALTER USER 'root'@'localhost' IDENTIFICADO COM mysql_native_password BY 'your_password';
- Atualize a tabela de permissões para que as alterações entrem em vigor:
- FLUSH PRIVILÉGIOS;
- Depois de concluir essas etapas, o usuário root poderá autenticar por senha em vez de usar o plug-in auth_socket.
- Por fim, use o seguinte comando e insira a senha do usuário root do MySQL definida anteriormente para efetuar login no servidor MySQL:
- mysql -u root -p
Em terceiro lugar , expanda o conhecimento
1. Como modificar a política de senha do MySQL?
- Ao definir a senha de login do MySQL, você encontrará a seguinte mensagem de erro
- Este erro ocorre porque o MySQL tem uma política de senha habilitada por padrão para garantir a segurança da senha. De acordo com a política de senha, a senha deve atender a certos requisitos antes de ser aceita, e os requisitos são os seguintes na caixa vermelha.
- Mas no MySQL, você pode ajustar os requisitos de política de senha modificando as variáveis de política de senha. Especificamente, as duas variáveis relacionadas a seguir podem ser modificadas:
- valid_password.policy: Esta variável define os requisitos da política de senha. Seu valor pode ser uma combinação de uma ou mais das políticas a seguir.
- BAIXO: A senha requer apenas que o comprimento seja satisfeito.
- MÉDIO: A senha deve conter pelo menos números, letras e caracteres especiais.
- FORTE: A senha deve conter pelo menos números, letras, caracteres especiais e outros caracteres.
- valid_password.length: Esta variável define o requisito de comprimento mínimo da senha, o padrão é 8 e pode ser ajustado conforme necessário.
As políticas de senha podem ser ajustadas no MySQL seguindo estas etapas:
- Faça login no MySQL como root:
- sudo mysql
- Execute o seguinte comando para modificar a política de senha: (defina a política de senha como LOW e defina o comprimento mínimo da senha como 4)
- SET GLOBAL valid_password.policy='BAIXO';
- SET GLOBAL validar_senha.comprimento=4;
- Atualize a tabela de permissões para que as alterações entrem em vigor:
- FLUSH PRIVILÉGIOS;
- Saia da interface de linha de comando do MySQL:
- DESISTIR;
2. Implemente o código de teste para conectar ao banco de dados MySQL
#include <mysql/mysql.h> #include <stdio.h> int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "username"; char *password = "password"; char *database = "database_name"; conn = mysql_init(NULL); // 连接数据库 if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); mysql_close(conn); return 1; } // 执行SQL查询 if (mysql_query(conn, "SELECT * FROM table_name")) { fprintf(stderr, "%s\n", mysql_error(conn)); return 1; } res = mysql_use_result(conn); // 处理查询结果 while ((row = mysql_fetch_row(res)) != NULL) { for(int i = 0; i < mysql_num_fields(res); i++) { printf("%s ", row[i] ? row[i] : "NULL"); } printf("\n"); } // 释放结果集和关闭连接 mysql_free_result(res); mysql_close(conn); return 0; }
- Verifique se a biblioteca está instalada
libmysqlclient-dev
. Se não estiver instalado, você pode instalá-lo com o seguinte comando:
- sudo apt-get install libmysqlclient-dev
- No comando de compilação, a biblioteca MySQL C API precisa ser vinculada. Pode ser compilado com o seguinte comando:
- gcc -o meu_programa main.c -lmysqlclient
- Se você ainda tiver problemas, verifique se o compilador pode encontrar corretamente o caminho para os arquivos da biblioteca MySQL. Se o arquivo da biblioteca MySQL não estiver no caminho padrão, pode ser necessário usar
-L
o sinalizador para especificar o caminho do arquivo da biblioteca.