Альтернативный способ установить пароль mysql rootMySql

Форум по Mysql
Ответить
Anonymous
 Альтернативный способ установить пароль mysql root

Сообщение 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.
очень ценит какие -либо идеи?>

Подробнее здесь: https://stackoverflow.com/questions/794 ... t-password
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»