preparar instalar mysql en macOS
Estoy intentando configurar MySQL en mac os 10.6 usando Homebrew por brew install mysql 5.1.52
.
Todo va bien y también tengo éxito con el mysql_install_db
.
Sin embargo, cuando intento conectarme al servidor usando:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'
Yo obtengo:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: conectarse al servidor en 'localhost' error fallido: 'Acceso denegado para el usuario 'root'@'localhost' (usando contraseña: NO)'
Intenté acceder mysqladmin or mysql using -u root -proot
también,
pero no funciona con o sin contraseña.
Esta es una instalación completamente nueva en una máquina nueva y, hasta donde yo sé, se debe poder acceder a la nueva instalación sin una contraseña de root. También probé:
/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation
pero también entiendo
ERROR 1045 (28000): Acceso denegado para el usuario 'root'@'localhost' (usando contraseña: NO)
Creo que uno puede terminar en esta posición si ya tiene instaladas versiones anteriores de MySQL. Tuve el mismo problema y ninguna de las soluciones anteriores funcionó para mí. Lo arreglé así:
Usé los comandos remove
& de Brew cleanup
, descargué el launchctl
script, luego eliminé el directorio mysql en /usr/local/var
, eliminé el existente /etc/my.cnf
(déjalo en tus manos, si corresponde) y lancéctl plist
Se actualizó la cadena para el plist. Tenga en cuenta también que su directorio de script de seguridad alternativo se basará en la versión de MySQL que esté instalando.
Paso a paso:
brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql
Luego comencé desde cero:
- instalado mysql con
brew install mysql
ejecutó los comandos brew sugeridos: (ver nota: a continuación)
unset TMPDIR mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Inicie mysql con
mysql.server start
el comando para poder iniciar sesiónUsó el script de seguridad alternativo:
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
Seguí la
launchctl
sección del resultado del script del paquete de preparación, como por ejemplo,#start launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist #stop launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Nota: la --force
broca brew cleanup
también limpiará barriles obsoletos, creo que es una característica nueva de cerveza casera.
Tenga en cuenta el segundo: un comentarista dice que el paso 2 no es necesario. No quiero probarlo, ¡así que YMMV!
Aquí hay instrucciones detalladas que combinan cómo deshacerse de todo MySQL de su Mac y luego instalarlo The Brew Way como escribió Sedorner anteriormente:
Elimine MySQL por completo según The Tech Lab
ps -ax | grep mysql
- detener y
kill
cualquier proceso MySQL sudo rm /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql*
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
- editar
/etc/hostconfig
y eliminar la líneaMYSQLCOM=-YES-
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*
sudo rm -rf /tmp/mysql*
- intenta ejecutarlo
mysql
, no debería funcionar
Prepare MySQL por usuario Sedorner desde esta respuesta de StackOverflow
brew doctor
y corregir cualquier errorbrew remove mysql
brew cleanup
brew update
brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp # whoami is executed inline
mysql.server start
ejecute los comandos que sugiere Brew, agregue MySQL para
launchctl
que se inicie automáticamente al inicio
mysql
Ahora debería funcionar y estar ejecutándose todo el tiempo como se esperaba.
Buena suerte.
Tuve el mismo problema. Parece que hay algún problema con las instrucciones de configuración o las tablas iniciales que se están creando. Así es como ejecuté mysqld en mi máquina.
Si el servidor mysqld ya se está ejecutando en su Mac, deténgalo primero con:
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
Inicie el servidor mysqld con el siguiente comando que permite a cualquiera iniciar sesión con permisos completos.
mysqld_safe --skip-grant-tables
Luego ejecute mysql -u root
lo que ahora debería permitirle iniciar sesión correctamente sin contraseña. El siguiente comando debería restablecer todas las contraseñas de root.
UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;
Ahora, si elimina la copia en ejecución de mysqld_safe y la inicia nuevamente sin la opción skip-grant-tables, debería poder iniciar sesión con mysql -u root -p
la nueva contraseña que acaba de configurar.
cerveza casera
- Primero, asegúrese de tener instalado Homebrew.
- Ejecute
brew doctor
y solucione cualquier cosa que Homebrew quiera que arregle. - Correr
brew install mysql
- Correr
brew services restart mysql
- Correr
mysql.server start
- Correr
mysql_secure_installation
Si Brew instaló MySQL 5.7, el proceso es un poco diferente al de versiones anteriores. Para restablecer la contraseña de root, proceda de la siguiente manera:
sudo rm -rf /usr/local/var/mysql
mysqld --initialize
Se imprimirá una contraseña temporal en la consola y solo se puede usar para actualizar la contraseña de root:
mysql.server start
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot --password=TEMPORARY_PASSWORD