Depois de instalar o MySQL, você configura os privilégios
iniciais dos acessos executando
scripts/mysql_install_db
. See
Secção 2.3.1, “Visão geral da instalação rápida”. O script
mysql_install_db
inicia o servidor
mysqld
, depois inicializa as tabelas de
permissões com a seguinte configuração dos privilégios:
O usuário root
do MySQL é criado como
um superusuário que pode fazer qualquer coisa. Conexões
devem ser feitas através da máquina local.
NOTA: A senha inicial de
root
é vazia, portanto qualquer um que
conectar como root
sem
senha terá direito a todos os privilégios.
Um usuário anônimo é criado e pode fazer o que desejar
com bancos de dados com nome 'test'
ou
iniciando com 'test_'
. Conexões devem
ser feitas da máquina local. Isto significa que usuários
locais podem se conectar sem senha e serem tratados como
usuários anônimos.
Outros privilégios são negados. Por exemplo, usuários
normais não podem executar mysqladmin
ou
mysqladmin processlist
.
NOTA: Os privilégios padrões são diferentes no Windows. See Secção 2.1.1.8, “Executando o MySQL no Windows”.
Como sua instação inicialmente é parcialmente aberta, uma das
primeiras coisas que você deve fazer é especificar uma senha
para o usuário root
do MySQL. Você pode
fazer isto como a seguir (perceba que a senha foi especificada
utilizando a função PASSWORD()
):
shell>mysql -u root mysql
mysql>SET PASSWORD FOR root@localhost=PASSWORD('nova_senha');
Substitua 'nova_senha'
pela senha que você
deseja usar.
Se você souber o que esta fazendo, você também pode manipular diretamente a tabela privilégios:
shell>mysql -u root mysql
mysql>UPDATE user SET Password=PASSWORD('nova_senha')
->WHERE user='root';
mysql>FLUSH PRIVILEGES;
Outra forma de configurar a senha é utilizando o comando
mysqladmin
:
shell> mysqladmin -u root password nova_senha
Somente usuários com acesso de escrita/atualização ao banco
de dados mysql
podem alterar a senha de
outros usuários. Todos os usuários comuns (não os anônimos)
podem alterar somente a própria senha com um dos comandos acima
ou com SET PASSWORD=PASSWORD('nova_senha')
.
Perceba que se você atualizar a senha na tabela
user
diretamente utilizando
UPDATE
, você deve dizer ao servidor para
reler as tabelas de permissões (com FLUSH
PRIVILEGES
), de outra forma a alteração não seria
notificada.
Uma vez que a senha de root
foi configurada,
você deve informar a senha quando se conectar ao servidor MySQL
como root
.
Você pode desejar deixar a senha de root
em
branco para que você não precise especificá-la quando
realizar configurações adicionais ou testes. Entretanto, tenha
certeza de configurá-la antes de utilizar sua instalação para
qualquer ambiente de produção.
Veja o script scripts/mysql_install_db
para
ver como são configurados os privilégios padrões. Você pode
usar isto como uma base para ver como adicionar outros
usuários.
Se você deseja que os privilégios iniciais sejam diferentes do
descrito acima, é possível modificar o script
mysql_install_db
antes de executá-lo.
Para recriar as tabelas de permissões completamente, remova
todos os arquivos .frm
.MYI
e .MYD
no
diretório contendo o banco de dados mysql
.
(Este é o diretório chamado mysql
sob o
diretório do banco de dados, que é listado quando você
executa mysqld --help
.) Depois execute o
script mysql_install_db
, possivelmente depois
de editá-lo para criar os privilégios desejáveis.
NOTA: Para versões do MySQL
mais antigas que a versão 3.22.10, você não deve apagar os
arquivos .frm
. Se você fizer isso
acidentalmente, você deve voltá-los a partir de sua
distribuição MySQL antes de executar
mysql_install_db
.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.