Я пытаюсь создать скрипт Python для автоматизации установки MySQL,
Пока что он создает пользователя MySQL, и загружает, Untars и устанавливает пакет RPM для MySQL 8.
после установки я пытаюсь войти в систему как пользователь MySQL ROOT с временным паролем с помощью разъема MySQL, чтобы изменить пароль. < /p>
Как я пытаюсь подключиться, выглядит так: < /p>
def login_to_mysql_db_inst(username, password):
mydb = mysql.connector.connect(
host="localhost",
user=username,
password=password
)
print(mydb)
return mydb
if __name__ == "__main__":
create_mysql_user(target_user) #create mysql user
download_mysql(db_version) #download and unzip mysql files
make_dirs_fn() #create data and log directories
chown_dirs_fn() #grant permissions and ownership on directories to mysql user
##need to update /etc/cfengine-hostclasses.txt
resolve_dependencies() #remove files that may conflict with the install
install() #installs mysql
write_config_to_file(cfengine_hostclass_lines, '/etc/cfengine-hostclasses.txt') ##write lines into /etc/cfengine-hostclasses.txt
write_config_to_file(mysql_config_lines, '/etc/my.cnf') ##write lines into /etc/my.cnf
run_cmd(["service","mysqld","start"]) #start mysql services
run_cmd(["service","mysqld","status"]) ##check status of mysql services
run_cmd(["chkconfig", "mysqld", "on"]) #enable mysqld.service -- enabling auto start
temp_password = get_temporary_mysql_password()
login_to_mysql_db_inst('root',temp_password)
curr = mydb.cursor()
curr.execute("ALTER USER 'root'@'localhost' IDENTIFIED BY '*************';")
< /code>
Когда я попробую это, я получаю ошибку с истекшим сроком положения < /p>
Traceback (most recent call last):
File "/usr/local/lib64/python3.6/site-packages/mysql/connector/connection_cext.py", line 236, in _open_connection
self._cmysql.connect(**cnx_kwargs)
_mysql_connector.MySQLInterfaceError: Your password has expired. To log in you must change it using a client that supports expired passwords.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "mysql_install_script.py", line 283, in
login_to_mysql_db_inst('root',temp_password)
File "mysql_install_script.py", line 250, in login_to_mysql_db_inst
password=password
File "/usr/local/lib64/python3.6/site-packages/mysql/connector/__init__.py", line 272, in connect
return CMySQLConnection(*args, **kwargs)
File "/usr/local/lib64/python3.6/site-packages/mysql/connector/connection_cext.py", line 85, in __init__
self.connect(**kwargs)
File "/usr/local/lib64/python3.6/site-packages/mysql/connector/abstracts.py", line 1028, in connect
self._open_connection()
File "/usr/local/lib64/python3.6/site-packages/mysql/connector/connection_cext.py", line 242, in _open_connection
sqlstate=exc.sqlstate)
mysql.connector.errors.DatabaseError: 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
< /code>
Я могу вручную сбросить его в терминале, введя mysql -u root -p {temp_password}, а затем используя команду Alter пользователя для сброса пароля, но мы смотрим на способ автоматизировать это с помощью сценария Python.
очень ценит какие -либо идеи?>
Подробнее здесь: https://stackoverflow.com/questions/794 ... t-password
Альтернативный способ установить пароль mysql root ⇐ MySql
Форум по Mysql
-
Anonymous
1738947524
Anonymous
Я пытаюсь создать скрипт Python для автоматизации установки MySQL,
Пока что он создает пользователя MySQL, и загружает, Untars и устанавливает пакет RPM для MySQL 8.
после установки я пытаюсь войти в систему как пользователь MySQL ROOT с временным паролем с помощью разъема MySQL, чтобы изменить пароль. < /p>
Как я пытаюсь подключиться, выглядит так: < /p>
def login_to_mysql_db_inst(username, password):
mydb = mysql.connector.connect(
host="localhost",
user=username,
password=password
)
print(mydb)
return mydb
if __name__ == "__main__":
create_mysql_user(target_user) #create mysql user
download_mysql(db_version) #download and unzip mysql files
make_dirs_fn() #create data and log directories
chown_dirs_fn() #grant permissions and ownership on directories to mysql user
##need to update /etc/cfengine-hostclasses.txt
resolve_dependencies() #remove files that may conflict with the install
install() #installs mysql
write_config_to_file(cfengine_hostclass_lines, '/etc/cfengine-hostclasses.txt') ##write lines into /etc/cfengine-hostclasses.txt
write_config_to_file(mysql_config_lines, '/etc/my.cnf') ##write lines into /etc/my.cnf
run_cmd(["service","mysqld","start"]) #start mysql services
run_cmd(["service","mysqld","status"]) ##check status of mysql services
run_cmd(["chkconfig", "mysqld", "on"]) #enable mysqld.service -- enabling auto start
temp_password = get_temporary_mysql_password()
login_to_mysql_db_inst('root',temp_password)
curr = mydb.cursor()
curr.execute("ALTER USER 'root'@'localhost' IDENTIFIED BY '*************';")
< /code>
Когда я попробую это, я получаю ошибку с истекшим сроком положения < /p>
Traceback (most recent call last):
File "/usr/local/lib64/python3.6/site-packages/mysql/connector/connection_cext.py", line 236, in _open_connection
self._cmysql.connect(**cnx_kwargs)
_mysql_connector.MySQLInterfaceError: Your password has expired. To log in you must change it using a client that supports expired passwords.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "mysql_install_script.py", line 283, in
login_to_mysql_db_inst('root',temp_password)
File "mysql_install_script.py", line 250, in login_to_mysql_db_inst
password=password
File "/usr/local/lib64/python3.6/site-packages/mysql/connector/__init__.py", line 272, in connect
return CMySQLConnection(*args, **kwargs)
File "/usr/local/lib64/python3.6/site-packages/mysql/connector/connection_cext.py", line 85, in __init__
self.connect(**kwargs)
File "/usr/local/lib64/python3.6/site-packages/mysql/connector/abstracts.py", line 1028, in connect
self._open_connection()
File "/usr/local/lib64/python3.6/site-packages/mysql/connector/connection_cext.py", line 242, in _open_connection
sqlstate=exc.sqlstate)
mysql.connector.errors.DatabaseError: 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
< /code>
Я могу вручную сбросить его в терминале, введя mysql -u root -p {temp_password}, а затем используя команду Alter пользователя для сброса пароля, но мы смотрим на способ автоматизировать это с помощью сценария Python.
очень ценит какие -либо идеи?>
Подробнее здесь: [url]https://stackoverflow.com/questions/79421641/alternative-way-to-set-mysql-root-password[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия