Як змінити пароль і ім'я користувача MySQL на сервері ubuntu? Чи потрібно зупиняти службу mysql, перш ніж встановлювати будь-які зміни?
У мене також є програма phpmyadmin, чи оновиться автоматично оновлення phpmyadmin?
Як змінити пароль і ім'я користувача MySQL на сервері ubuntu? Чи потрібно зупиняти службу mysql, перш ніж встановлювати будь-які зміни?
У мене також є програма phpmyadmin, чи оновиться автоматично оновлення phpmyadmin?
Відповіді:
Встановити / змінити / скинути кореневий пароль MySQL на Ubuntu Linux. Введіть наступні рядки у свій термінал.
sudo /etc/init.d/mysql stop
Запуск mysqld
конфігурації:sudo mysqld --skip-grant-tables &
У деяких випадках потрібно створити /var/run/mysqld
перше:
sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
sudo service mysql start
mysql -u root mysql
Замініть YOURNEWPASSWORD
своїм новим паролем:
UPDATE
mysql.user
SET
Password = PASSWORD('YOURNEWPASSWORD')
WHERE
User = 'root';
FLUSH PRIVILEGES;
exit;
Примітка. У деяких версіях, якщо
password
стовпець не існує, ви можете спробувати:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';
Примітка. Цей метод не вважається найбільш безпечним способом скидання пароля, однак він працює.
Список літератури:
sudo killall -9 mysqld
? а потім sudo service mysql start
перезапустити звичайний демон ...
mkdir /var/run/mysqld
і chown mysql: /var/run/mysqld
між кроками 1 і 2
Єдиний метод, який працював для мене, - це описаний тут (я запускаю ubuntu 14.04). Для наочності це наступні кроки:
sudo vim /etc/mysql/my.cnf
Додайте наступні рядки наприкінці:
[mysqld] пропустити-грант-таблиці
sudo service mysql restart
mysql -u root
use mysql
select * from mysql.user where user = 'root';
- Подивіться вгорі, щоб визначити, чи називається стовпець
паролем паролем або автентифікацією
UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';
- Використовуйте відповідний стовпець пароля зверху
FLUSH PRIVILEGES;
exit
sudo vim /etc/mysql/my.cnf
Видаліть рядки, додані на кроці 2, якщо ви хочете дотримуватися своїх стандартів безпеки.
sudo service mysql restart
Довідково: https://dev.mysql.com/doc/refman/5.7/uk/resetting-permissions.html
Офіційний і простий спосіб скинути пароль root на сервер ubuntu ...
Якщо ви 16.04, 14.04, 12.04:
sudo dpkg-reconfigure mysql-server-5.5
Якщо ви 10.04:
sudo dpkg-reconfigure mysql-server-5.1
Якщо ви не впевнені, яка версія mysql-сервера встановлена, ви можете спробувати:
dpkg --get-selections | grep mysql-server
Оновлені нотатки для mysql-сервера-5.7
Зауважте, що якщо ви використовуєте mysql-server-5.7, ви не можете скористатися більш простим методом перенастроювання dpkg, показаним вище.
Якщо ви знаєте пароль, увійдіть та запустіть це:
UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;
Крім того, ви можете використовувати наступне:
sudo mysql_secure_installation
Це дасть вам ряд питань щодо забезпечення встановлення (настійно рекомендується), у тому числі, якщо ви хочете надати новий корінний пароль.
Якщо ви НЕ знаєте кореневого пароля, зверніться до цього запису Ubuntu, орієнтованого на процес .
Докладніше:
https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html
Ver 14.14 Distrib 5.5.38, for debian-linux-gnu
sudo dpkg-reconfigure mysql-server-5.0
sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
Що для мене працювало (Ubuntu 16.04, mysql 5.7):
Зупиніть MySQL
sudo service mysql stop
Складіть каталог служб MySQL.
sudo mkdir /var/run/mysqld
Надати користувачеві MySQL дозвіл на запис у службовий каталог.
sudo chown mysql: /var/run/mysqld
Запустіть MySQL вручну, без перевірки дозволів чи встановлення мереж.
sudo mysqld_safe --skip-grant-tables --skip-networking &
На іншій консолі увійдіть без пароля.
mysql -uroot mysql
Тоді:
UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;
Вимкніть MySQL.
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
Запускайте сервіс MySQL нормально.
sudo service mysql start
Я ділюся покроковим остаточним рішенням щодо скидання пароля MySQL в Linux Ubuntu.
Довідка взята з блогу (dbrnd.com)
Крок 1: Зупиніть службу MySQL.
sudo stop mysql
Крок 2: Вбийте всі запущені mysqld.
sudo killall -9 mysqld
Крок 3: Запуск mysqld в безпечному режимі.
sudo mysqld_safe --skip-grant-tables --skip-networking &
Крок 4: Запустіть клієнт mysql
mysql -u root
Крок 5: Після успішного входу, будь ласка, виконайте цю команду, щоб змінити будь-який пароль.
FLUSH PRIVILEGES;
Крок 6: Ви можете оновити пароль root для mysql.
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Примітка . На MySQL 5.7 Password
викликається стовпець authentication_string
.
Крок 7: Будь ласка, виконайте цю команду.
FLUSH PRIVILEGES;
Я зіткнувся з проблемами з ubuntu 18.04 та mysql 5.7, це рішення
Спробуйте перезапустити mysql-сервер перед виконанням команд
sudo service mysql restart
MYSQL-СЕРВЕР> = 5.7
sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
MYSQL-СЕРВЕР <5.7
sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
MYSQL-SERVER >= 5.7
версія була єдиним, що насправді вирішило проблему
MYSQL-SERVER >= 5.7
версія, щоб бути точним.
Змініть кореневий пароль MySQL.
Цей метод виставляє пароль до історії командного рядка, ці команди повинні бути запущені як root.
Увійти через інструмент командного рядка mysql:
mysql -uroot -poldpassword
Виконайте цю команду:
SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');
або
Запустіть цю команду, яка встановлює пароль для поточного користувача ('root' для цього випадку):
SET PASSWORD = ПАРОЛЬ ('newpassword');
Спочатку запустіть цю команду:
sudo mysql
а потім слід перевірити, яким методом аутентифікації використовуються ваші облікові записи MySQL. Отже, запустіть цю команду
SELECT user,authentication_string,plugin,host FROM mysql.user;
тепер ви вже можете побачити щось подібне:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
у наведеній вище таблиці ви бачите, що всі ваші акаунти користувачів mysql стану акаунтів, і якщо ви встановили пароль для кореневого облікового запису, перш ніж ви побачите mysql_native_password
в колонці плагінів auth_socket
. Загалом, для зміни вашого кореневого пароля слід запустити:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Не забудьте змінити пароль на міцний пароль на ваш вибір. Потім для перезавантаження вашого сервера для введення нових змін в силу запустіть це;
FLUSH PRIVILEGES;
Тому ще раз перевірте методи аутентифікації, які використовує ваш mysql, за допомогою цієї команди:
SELECT user,authentication_string,plugin,host FROM mysql.user;
і тепер вихід:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
як ви бачите в таблиці грантів, у якій є ваш кореневий обліковий запис mysql_native_password
. тепер ви можете вийти з оболонки MYSQL
exit;
Це все. Просто слід перезапустити mysql sudo service mysql restart
. Тепер ви можете легко увійти в mysql як кореневий рахунок з паролем.
Якщо ви хочете змінити кореневий пароль MySQL, в терміналі введіть:
sudo dpkg-reconfigure mysql-server-5.5
Демон MySQL буде зупинено, і вам буде запропоновано ввести новий пароль.
sudo dpkg-reconfigure mysql-server-5.7
на Ubuntu 16.04, він не запропонував ввести новий пароль.
mysql-server is broken or not fully installed
, можна скористатися sudo apt purge mysql*
іsudo apt install mysql-server
Це працює як шарм. Я зробив це для Ubuntu 16.04. Повний кредит на посилання нижче, як я отримав його звідти. [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts снимкиpted1]
Зупиніть MySQL
sudo service mysql stop
Складіть каталог служб MySQL. sudo mkdir / var / run / mysqld
Надати користувачеві MySQL дозвіл на запис у службовий каталог.
sudo chown mysql: /var/run/mysqld
Запустіть MySQL вручну, без перевірки дозволів чи встановлення мереж.
sudo mysqld_safe --skip-grant-tables --skip-networking &
Увійдіть без пароля.
mysql -uroot mysql
Оновіть пароль для кореневого користувача. переконайтеся, що принаймні кореневий обліковий запис оновлюється запитом нижче. зробіть деякий вибір і перевірте наявні значення, якщо хочете
UPDATE mysql.user SET
authentication_string=PASSWORD('YOURNEWPASSWORD'),
plugin='mysql_native_password' WHERE User='root';
EXIT;
Вимкніть MySQL.
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
Запускайте сервіс MySQL нормально.
sudo service mysql start
Зупиніть MySQL sudo службу mysql стоп
Складіть каталог служб MySQL. sudo mkdir / var / run / mysqld
Надати користувачеві MySQL дозвіл на запис у службовий каталог. sudo chown mysql: / var / run / mysqld
Запустіть MySQL вручну, без перевірки дозволів чи встановлення мереж. sudo mysqld_safe --skip-grant-table --skip-networking &
5.Увійдіть без пароля. mysql -uroot mysql
6.Оновіть пароль для кореневого користувача.
UPDATE mysql.user SET автентифікація_string = PASSWORD ('YOURNEWPASSWORD'), плагін = 'mysql_native_password' WHERE User = 'root' AND Host = '%'; ВИХІД;
Вимкніть MySQL. sudo mysqladmin -S /var/run/mysqld/mysqld.sock вимкнення
Запускайте сервіс MySQL нормально. Служба sudo mysql start
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
без AND Host='%'
. Дякую!
Це рішення належить до попередньої версії MySQL. Увійшовши в MySQL за допомогою аутентифікації сокета, ви можете це зробити.
sudo mysql -u root
Тоді можна виконати наступну команду.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Деталі доступні тут .
sudo mysql -u root
але я зміг це зробити як sudo mysql
і виконати ALTER USER
команду.
Це рішення для мене. Я працюю в Ubuntu 18.04: https://stackoverflow.com/a/46076838/2400373
Але важлива ця зміна на останньому кроці:
UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
Для Ubuntu 18.04 та mysql версії 14.14 Distrib 5.7.22 виконайте наступний крок, щоб скинути пароль mysql.
sudo systemctl stop mysql
sudo systemctl edit mysql
Ця команда відкриє новий файл у наноредакторі, який ви будете використовувати для редагування скасування служб MySQL. Вони змінюють параметри служби за замовчуванням для MySQL. Цей файл буде порожнім, тому додайте такий вміст:
[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking
sudo systemctl daemon-reload
sudo systemctl start mysql
sudo mysql -u root
FLUSH PRIVILEGES;
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';
UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';
sudo systemctl revert mysql
і, нарешті
sudo systemctl restart mysql
Тепер насолоджуйтесь
Відгук коментаря rogerdpack: якщо ви не знаєте кореневого пароля MySQL і не переймаєтесь даними / налаштуваннями MySQL, ви можете встановити його заново та скинути пароль root наступним чином:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client
Під час встановлення ви можете вибрати пароль root:
Якщо ви знаєте свій поточний пароль, вам не доведеться зупиняти сервер mysql. Відкрийте термінал ubuntu. Увійдіть до mysql за допомогою:
mysql - username -p
Потім введіть свій пароль. Це переведе вас у консоль mysql. Всередині консолі введіть:
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Потім очистіть привілеї за допомогою:
> flush privileges;
Тоді все закінчено.
Якщо ви використовуєте MySQL PASSWORD()
в системі, де потрібно змінити пароль, це може призвести до появи пароля в журналі MySQL у cleartext [ джерело ]. Зберігаючи їх, їхні резервні копії та ін. Так само безпечно, оскільки пароль звучить для мене як кошмар, тому я люблю це робити так:
На локальній машині запустіть це своїм паролем:
mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
Зверніть увагу на простір перед тим, щоб він не з’явився в історії башів (для інших дистрибутивів, ніж Ubuntu, це може працювати інакше - джерело ).
На серверній машині виконайте таку команду, щоб змінити свій кореневий пароль MySQL (замініть myhash
хеш вашого пароля, як надруковано першою командою):
mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
Необов’язково, будьмо трохи параноїдальні: на локальній машині очистіть екран свого терміналу clear
і очистіть прокрутку віртуального термінала, щоб приховати пароль ясного тексту, який відображається в команді вище.
Щоб оновити "root" Mysql пароль користувача, ви повинні мати на увазі, що для цього вам будуть потрібні суперкористувацькі дозволи. Якщо у вас є привілеї супер користувача, спробуйте такі команди:
MySQL 5.7.6 та новіших версій
sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass
MySQL 5.7.5 і новіші версії
sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass
Вам все це не потрібно. Просто увійдіть:
mysql -u root -p
Потім змініть пароль поточного користувача як mysql>
підказку:
mysql> set password=password('the_new_password');
mysql> flush privileges;
Більшість відповідей на цю тему застаріли; до моменту написання цієї відповіді відбулися дві основні зміни в MySQL:
1- поле "Пароль" в таблиці користувачів було замінено стовпцем "authentication_string".
2- функція шифрування "паролем": PASSWORD ("деякого тексту") застаріла.
Перейдіть за цим посиланням для отримання додаткової інформації: dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
Замість скидання пароля на локальній машині є вирішення проблеми, якщо у вас є налаштування phpmyadmin
підключення, не вказуючи пароль або ім'я користувача. Перевірте це, запустивши mysql
і apache
т. Д. Я xampp
встановив у своїй локальній машині. Тож запуск xampp запустить усі необхідні послуги. Тепер я покажу http://localhost/phpmyadmin
мені всі бази даних. Це підтверджує, що ви зберегли ім'я користувача та пароль у конфігураційному файлі phpmyadmin, який можна знайти в місці phpmyadmin
встановлення. Якщо ви xampp
встановили phpmyadmin
папку, ви можете знайти її в кореневій папці xampp
інсталяції. Шукайте слово password
у config.inc.php
файлі. Там ви знайдете password
і username
.
Ви можете легко змінити пароль mysql, якщо його розгорнути на xampp через надані phpadmin gui.
phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
для mysql 5.6 ця команда працює, і ви можете встановити пароль через майстра:
sudo dpkg-reconfigure mysql-server-5.6
Ви можете спробувати виконати наступні дії, щоб скинути пароль root mysql 5.7:
Зупиніть службу Mysql 1-ю
sudo /etc/init.d/mysql stop
Увійдіть як корінь без пароля
sudo mysqld_safe --skip-grant-tables
&
Після входу в mysql термінал вам потрібно буде виконати більше команд:
use mysql;
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
flush privileges;
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
Після перезавантаження сервера mysql Якщо ви все-таки стикаєтеся з помилкою, вам потрібно відвідати: Скинути MySQL 5.7 root root Ubuntu 16.04
Ви можете використовувати цю команду:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
після цього будь ласка, використовуйте флеш:
FLUSH PRIVILEGES;
Встановлення пароля MySQL
sudo /etc/init.d/mysql зупинка
sudo mkdir / var / run / mysqld /
sudo chown mysql / var / run / mysqld /
sudo mysqld_safe --skip-grant-таблиці &
sudo mysql -у корінь
використовувати mysql;
update user set authentication_string=PASSWORD("New_Passwore_Here") where
User = 'root';
Збережіть зміни
флеш-пільги; вихід;
зупинити MySQL safe_mode та запустити службу за замовчуванням MySQL
sudo /etc/init.d/mysql зупинка
sudo /etc/init.d/mysql start
sudo mysql -u корінь -p
*** Джерело: https://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/
Якщо ви знаєте пароль користувача «root», увійдіть до mysql за допомогою цих облікових даних. Потім виконайте наступний запит, щоб оновити пароль.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
під час зміни / скидання пароля MySQL наступні команди, перелічені вище, не допомогли. Я виявив, що заходити в термінал і використовувати ці команди безглуздо. замість цього використовуйте команду sudo зупинити все. СКАЧАТИ СИСТЕМУ 32 для вікон, якщо це допомагає.
ubuntu
ОС, а не Windows. Що ви розумієте під DELETE SYSTEM 32 для Windows ?
Щоб скинути або змінити пароль, введіть sudo dpkg-reconfigure mysql-server-X.X
(XX - версія mysql, яку ви встановили, тобто 5.6, 5.7), і тоді ви підкажете екран, на якому потрібно встановити новий пароль, а потім на наступному кроці підтвердите пароль і просто зачекайте хвилинку. Це воно.
Мені довелося пройти цей маршрут на Ubuntu 16.04.1 LTS. Це дещо поєднання деяких інших відповідей вище, але жодна з них не допомогла. Я витратив годину або більше, намагаючись усі інші пропозиції з веб-сайту MySql про все на SO, я, нарешті, з цим працював:
Примітка: в той час як він показував Введіть пароль для root користувача, у мене не було оригінального пароля, тому я просто ввів той самий пароль для використовуватиметься як новий пароль.
Примітка: не було /var/log/mysqld.log лише /var/log/mysql/error.log
Також зауважте, що це не спрацювало для мене:
sudo dpkg-reconfigure mysql-server-5.7
Також не роби:
sudo dpkg-reconfigure --force mysql-server-5.5
Зробіть каталог служб MySQL.
sudo mkdir /var/run/mysqld
Надати користувачеві MySQL дозвіл на запис у службовий каталог.
sudo chown mysql: /var/run/mysqld
Тоді:
run / usr / bin / mysql_secure_installation
Виведення з mysql_secure_installation
root @ myServer: ~ # / usr / bin / mysql_secure_installation
Забезпечення розгортання сервера MySQL.
Введіть пароль для кореня користувача:
ПЛУГІН ВАЛІДАЛЬНОГО ПАРОЛУ можна використовувати для тестування паролів та підвищення безпеки. Він перевіряє міцність пароля і дозволяє користувачам встановлювати лише ті паролі, які є досить безпечними. Хочете встановити плагін VALIDATE PASSWORD?
Натисніть y | Y для Так, будь-яку іншу клавішу для Ні: ні Використовуючи існуючий пароль для root. Змінити пароль для root? ((Натисніть y | Y для Так, будь-яка інша клавіша для Ні): y
Новий пароль:
Повторне введення нового пароля: за замовчуванням установка MySQL має анонімного користувача, що дозволяє кожному входити в MySQL, не створюючи для них облікового запису користувача. Це призначено лише для тестування та для того, щоб зробити установку трохи плавнішою. Ви повинні їх видалити перед переміщенням у виробниче середовище.
Видалити анонімних користувачів? (Натисніть y | Y для Так, будь-яка інша клавіша для Ні): y Успіх.
Зазвичай, root має бути дозволений для підключення лише з 'localhost'. Це гарантує, що хтось не може здогадатися за кореневим паролем з мережі.
Відключити кореневе вхід у систему? (Натисніть y | Y для Так, будь-яка інша клавіша для Ні): y Успіх.
За замовчуванням MySQL має базу даних з назвою "тест", до якої може отримати доступ кожен. Це також призначене лише для тестування, і його слід видалити перед переміщенням у виробниче середовище.
Видалити тестову базу даних та отримати доступ до неї? (Натисніть y | Y для Так, будь-яка інша клавіша для Ні): y
Видалення тестової бази даних ... Успіх.
Видалення привілеїв на тестовій базі даних ... Успіх.
Перезавантаження таблиць привілеїв забезпечить негайне внесення всіх досі змін.
Перезавантажити таблиці привілеїв зараз? (Натисніть y | Y для Так, будь-яка інша клавіша для Ні): y Успіх.
Готово!