Vietnē CentOS / RHEL jūs varat viegli palaist mysql_secure_installation komandu, lai iestatītu saknes paroli. Bet uz Ubuntu 20.04 LTS, šī metode nedarbojas, jo MySQL izmanto citu autentifikācijas spraudni sakne lietotājs.
Šis raksts parādīs, kā iestatīt MySQL saknes paroli CentOS 8 un Ubuntu 20.04 LTS Linux izplatīšana, izmantojot Ansible moduļus.
Priekšnoteikumi
Ja vēlaties izmēģināt šajā rakstā iekļautos piemērus,
1) Jūsu datorā jābūt instalētai programmai Ansible.
2) Jums ir jābūt vismaz CentOS / RHEL 8 resursdatoram vai Ubuntu 20.04 LTS resursdators ir konfigurēts iespējamai automatizācijai.
Vietnē LinuxHint ir daudz rakstu, kas veltīti Ansible instalēšanai un resursdatoru konfigurēšanai Ansible automatizācijai. Ja nepieciešams, varat tos pārbaudīt.
Projektu direktorijas iestatīšana
Pirms turpināt darbu, mēs izveidosim jaunu Ansible projekta direktoriju, lai lietas būtu mazliet sakārtotas.
Lai izveidotu projekta direktoriju mysql-root-pass / un visas nepieciešamās apakšdirektorijas (pašreizējā darba direktorijā), izpildiet šādu komandu:
$ mkdir -pv mysql-root-pass / playbooks, host_vars, group_vars
Kad projekta direktorijs ir izveidots, dodieties uz projekta direktoriju šādi:
$ cd mysql-root-pass /
Izveidojiet a saimniekiem krājuma fails:
$ nano saimnieki
Pievienojiet sava CentOS / RHEL 8 vai Ubuntu 20 resursdatora IP vai DNS nosaukumus.04 LTS resursdatori inventāra failā (viens resursdators katrā rindā), kā parādīts zemāk esošajā ekrānuzņēmumā.
Kad esat pabeidzis, saglabājiet failu, nospiežot
Šeit esmu izveidojis divas grupas, centos8, un ubuntu20. The centos8 grupai ir mana CentOS 8 resursdatora DNS nosaukums, vm3.nodekite.com; un ubuntu20 grupai ir mana Ubuntu 20 DNS nosaukums.04 LTS saimnieks, vm7.nodekite.com.
Izveidojiet Ansible konfigurācijas failu iespējams.cfg projekta direktorijā šādi:
$ nano ansible.cfg
Ierakstiet šādas rindiņas iespējams.cfg fails:
[noklusējumi]inventārs = saimnieki
host_key_checking = Nepatiesa
Kad esat pabeidzis, saglabājiet iespējams.cfg failu, nospiežot
Mēģiniet pingēt visus resursdatorus, kurus esat pievienojis savā saimniekiem krājuma fails:
$ ansible all -u ansible -m ping
Kā redzat, mans CentOS 8 resursdators (vm3.nodekite.com) un Ubuntu 20.04 LTS resursdators (vm7.nodekite.com) ir pieejami.
MySQL instalēšana un saknes paroles iestatīšana CentOS / RHEL 8
Šajā sadaļā tiks parādīts, kā instalēt MySQL datu bāzes serveri un iestatīt saknes paroli CentOS 8, izmantojot Ansible. Šai pašai procedūrai vajadzētu darboties arī ar RHEL 8.
Izveidojiet jauno Ansible playbook install_mysql_centos8.yaml iekš playbooks / direktorijā:
$ nano playbooks / install_mysql_centos8.yaml
Ierakstiet šādas rindiņas install_mysql_centos8.yaml fails:
- saimnieki: centos8lietotājs: ansible
kļūt: Patiesi
uzdevumi:
- nosaukums: Atjauniniet DNF pakotnes krātuves kešatmiņu
dnf:
update_cache: True
- nosaukums: Instalējiet MySQL serveri CentOS 8
dnf:
nosaukums: mysql-server
stāvoklis: klāt
- nosaukums: Instalējiet MySQL klientu CentOS 8
dnf:
nosaukums: mysql
stāvoklis: klāt
- nosaukums: Pārliecinieties, vai darbojas mysqld pakalpojums
apkalpošana:
nosaukums: mysqld
stāvoklis: sākts
iespējots: taisnība
- nosaukums: Instalējiet python3-PyMySQL bibliotēku
dnf:
nosaukums: python3-PyMySQL
stāvoklis: klāt
Kad esat pabeidzis, nospiediet
Zemāk esošā rindiņa Ansiblei saka palaist atskaņošanas grāmatu install_mysql_centos8.yaml katram uzņēmējam centos8 grupa.
Šeit esmu definējis 5 uzdevumus.
Pirmais uzdevums atjaunina CentOS 8 DNF pakotnes krātuves kešatmiņu, izmantojot Ansible dnf modulis.
Otrais uzdevums instalē MySQL servera pakotni mysql-serveris izmantojot Ansible dnf modulis.
Trešais uzdevums instalē MySQL klienta pakotni mysql izmantojot Ansible dnf modulis.
Ceturtais uzdevums nodrošina, ka mysqld pakalpojums darbojas un ka tas ir pievienots sistēmas startēšanai, lai tas automātiski sāktu sāknēšanu.
Piektais uzdevums instalē Python 3 MySQL bibliotēku pymysql. Tas ir nepieciešams, lai piekļūtu MySQL no Ansible.
Palaidiet install_mysql_centos8.yaml playbook šādi:
$ ansible-playbook playbooks / install_mysql_centos8.yaml
Kā redzat, spēļu grāmata install_mysql_centos8.yaml veiksmīgi skrēja.
CentOS 8 resursdatorā es varu piekļūt MySQL kā sakne lietotājam bez paroles, kā redzat zemāk redzamajā ekrānuzņēmumā:
$ sudo mysql -u sakne
Tagad, kad MySQL serveris ir instalēts, ir pienācis laiks iestatīt MySQL servera saknes paroli.
Izveidojiet jauno grupas mainīgā failu centos8 (iekš grupa_vars / direktorija) centos8 grupa:
$ nano group_vars / centos8
Pievienojiet jaunu mainīgo mysql_pass ar root paroli (manā gadījumā, noslēpums) kuru vēlaties iestatīt, kā parādīts zemāk esošajā ekrānuzņēmumā.
Kad esat pabeidzis, nospiediet
Izveidojiet jaunu atskaņošanas grāmatu set_root_pass_centos8.yaml ar šādu komandu:
$ nano playbooks / set_root_pass_centos8.yaml
Ierakstiet šādas rindiņas set_root_pass_centos8.yaml fails:
- saimnieki: centos8lietotājs: ansible
kļūt: Patiesi
uzdevumi:
- nosaukums: iestatiet MySQL saknes paroli
mysql_user:
login_host: 'localhost'
login_user: 'sakne'
pieslēgšanās parole: "
nosaukums: 'root'
parole: 'mysql_pass'
stāvoklis: klāt
Kad esat pabeidzis, nospiediet
Šajā spēļu grāmatā tiek izmantots mysql_user Iespējams modulis MySQL saknes paroles iestatīšanai.
The login_host, login_user, un pieslēgšanās parole opcijas mysql_user Anulējamais modulis tiek izmantots, lai attiecīgi iestatītu pašreizējo MySQL pieteikšanās resursdatora nosaukumu, lietotājvārdu un paroli. Pēc noklusējuma MySQL pieteikšanās resursdatora nosaukums (login_host) ir vietējais saimnieks, pieteikšanās lietotājvārds (login_user) ir sakne, un pieteikšanās paroli (pieslēgšanās parole) ir tukšs (”) uz CentOS 8.
The paroli opcija mysql_user Šeit var izmantot jaunu moduli, lai iestatītu jaunu MySQL saknes paroli. MySQL saknes parole būs mysql_pass grupas mainīgais, kas tika iestatīts agrāk.
Palaidiet atskaņošanas grāmatu set_root_pass_centos8.yaml ar šādu komandu:
$ ansible-playbook playbooks / set_root_pass_centos8.yaml
Spēļu grāmata veiksmīgi darbojās, kā redzams zemāk redzamajā ekrānuzņēmumā:
Kā redzat, es vairs nevaru pieteikties MySQL serverī bez root paroles.
Lai pieteiktos MySQL serverī kā sakne lietotājam ar paroli, savā CentOS 8 resursdatorā izpildiet šādu komandu:
$ sudo mysql -u root -p
Ievadiet saknes paroli, kuru esat iestatījis, izmantojot Ansible, un nospiediet
Jums jāpiesakās MySQL serverī kā sakne lietotājs.
MySQL instalēšana un saknes paroles iestatīšana Ubuntu 20.04 LTS
Šajā sadaļā tiks parādīts, kā instalēt MySQL datu bāzes serveri un iestatīt saknes paroli Ubuntu 20.04 LTS, izmantojot Ansible.
Izveidojiet jaunu Ansible playbook install_mysql_ubuntu20.yaml iekš playbooks / direktorijā:
$ nano playbooks / install_mysql_ubuntu20.yaml
Ierakstiet šādas rindiņas install_mysql_ubuntu20.yaml fails:
- saimnieki: ubuntu20lietotājs: ansible
kļūt: Patiesi
uzdevumi:
- nosaukums: Atjauniniet APT pakotnes krātuves kešatmiņu
apt:
update_cache: True
- nosaukums: Instalējiet MySQL serveri Ubuntu 20.04 LTS
apt:
nosaukums: mysql-server
stāvoklis: klāt
- nosaukums: Instalējiet MySQL klientu Ubuntu 20.04 LTS
apt:
nosaukums: mysql-client
stāvoklis: klāt
- nosaukums: Pārliecinieties, vai darbojas mysql pakalpojums
apkalpošana:
nosaukums: mysql
stāvoklis: sākts
iespējots: taisnība
- nosaukums: Instalējiet python3-pymysql bibliotēku
apt:
nosaukums: python3-pymysql
stāvoklis: klāt
Kad esat pabeidzis, nospiediet
Nākamajā rindiņā Ansible ir norādīts palaist atskaņošanas grāmatu install_mysql_ubuntu20.yaml katram uzņēmējam ubuntu20 grupa:
Šeit esmu definējis 5 uzdevumus.
Pirmais uzdevums atjaunina Ubuntu 20 APT pakotnes krātuves kešatmiņu.04 LTS, izmantojot Ansible trāpīgs modulis.
Otrais uzdevums instalē MySQL servera pakotni mysql-serveris izmantojot Ansible trāpīgs modulis.
Trešais uzdevums instalē MySQL klienta pakotni mysql izmantojot Ansible trāpīgs modulis.
Ceturtais uzdevums nodrošina, ka mysql pakalpojums darbojas un ka tas ir pievienots sistēmas startēšanai, lai tas automātiski sāktu sāknēšanu.
Piektais uzdevums instalē Python 3 MySQL bibliotēku pymysql. Tas ir nepieciešams, lai piekļūtu MySQL no Ansible.
Palaidiet install_mysql_ubuntu20.yaml playbook šādi:
$ ansible-playbook playbooks / install_mysql_ubuntu20.yaml
Kā redzat, spēļu grāmata install_mysql_ubuntu20.yaml veiksmīgi skrēja.
Manā Ubuntu 20.04 LTS resursdators, es varu piekļūt MySQL kā sakne lietotājam bez paroles, kā redzat zemāk redzamajā ekrānuzņēmumā.
$ sudo mysql -u sakne
Tagad, kad MySQL serveris ir instalēts, ir pienācis laiks iestatīt MySQL servera saknes paroli.
Izveidojiet jaunu grupas mainīgā failu ubuntu20 (iekš grupa_vars / direktorija) ubuntu20 grupa:
$ nano group_vars / ubuntu20
Pievienojiet jaunu mainīgo, mysql_pass, ar root paroli (manā gadījumā, noslēpums), kuru vēlaties iestatīt, kā parādīts zemāk redzamajā ekrānuzņēmumā.
Kad esat pabeidzis, nospiediet
Izveidojiet jaunu atskaņošanas grāmatu set_root_pass_ubuntu20.yaml ar šādu komandu:
$ nano playbooks / set_root_pass_ubuntu20.yaml
Ierakstiet šādas rindiņas set_root_pass_ubuntu20.yaml fails:
- saimnieki: ubuntu20lietotājs: ansible
kļūt: Patiesi
uzdevumi:
- nosaukums: Mainiet MySQL saknes lietotāja autentifikācijas spraudni uz mysql_native_password
apvalks: mysql -u root -e 'ATJAUNINĀT mysql.lietotāja SET spraudnis = "mysql_native_password"
WHERE user = "root" UN host = "localhost" '
- nosaukums: Flush privilēģijas
apvalks: mysql -u sakne -e 'FLUSH PRIVILEGES'
- nosaukums: iestatiet MySQL saknes paroli
mysql_user:
login_host: 'localhost'
login_user: 'sakne'
pieslēgšanās parole: "
nosaukums: 'root'
parole: 'mysql_pass'
stāvoklis: klāt
Kad esat pabeidzis, nospiediet
Šeit esmu definējis trīs uzdevumus.
Pirmais uzdevums maina MySQL autentifikācijas spraudni sakne lietotājs no auth_socket uz mysql_native_password.
Otrais uzdevums pārlādē visas privilēģijas.
Trešajā uzdevumā tiek izmantots mysql_user Iespējams modulis, lai iestatītu MySQL saknes paroli.
Trešajā uzdevumā login_host, login_user, un pieslēgšanās parole opcijas mysql_user Anulējamais modulis tiek izmantots, lai attiecīgi iestatītu pašreizējo MySQL pieteikšanās resursdatora nosaukumu, lietotājvārdu un paroli. Pēc noklusējuma MySQL pieteikšanās resursdatora nosaukums (login_host) ir vietējais saimnieks, pieteikšanās lietotājvārds (login_user) ir sakne, un pieteikšanās paroli (pieslēgšanās parole) ir tukšs (”) sistēmā.
Lūk, paroli opcija mysql_user Jauns MySQL root paroles iestatīšanai tiek izmantots modulis. MySQL saknes parole būs mysql_pass grupas mainīgais, kuru es iestatīju iepriekš group_vars / ubuntu20 failu.
Palaidiet atskaņošanas grāmatu set_root_pass_ubuntu20.yaml ar šādu komandu:
$ ansible-playbook playbooks / set_root_pass_ubuntu20.yaml
Spēļu grāmata veiksmīgi darbojās, kā redzat zemāk redzamajā ekrānuzņēmumā:
Kā redzat, es vairs nevaru pieteikties MySQL serverī bez root paroles.
$ sudo mysql -u sakne
Lai pieteiktos MySQL serverī kā root lietotājs ar iestatīto paroli, palaidiet šo komandu savā Ubuntu 20.04 LTS resursdators:
$ sudo mysql -u root -p
Ievadiet saknes paroli, kuru esat iestatījis, izmantojot Ansible, un nospiediet
Jums vajadzētu būt pieteicies MySQL serverī kā root lietotājam.
Secinājums
Šis raksts parādīja, kā instalēt MySQL serveri un iestatīt MySQL saknes paroli CentOS 8 un Ubuntu 20.04 LTS Linux izplatīšana, izmantojot Ansible. Šajā rakstā tika izmantots mysql_user Iespējams modulis MySQL saknes paroles iestatīšanai. Varat izmantot šo moduli, lai mainītu MySQL saknes paroli, izveidotu jaunus MySQL lietotājus un daudz vairāk lietotāju pārvaldības funkciju.
Lai iegūtu vairāk informācijas par mysql_user moduli, pārbaudiet mysql_user moduļa oficiālo dokumentāciju.