Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Instal MySQL dengan memungkinkan di ubuntu

Ketika mysql-server diinstal tanpa kepala, tidak ada kata sandi. Oleh karena itu untuk membuat .my.cnf berfungsi, itu harus memiliki baris kata sandi kosong. Inilah yang saya uji dengan .my.cnf :

[client]
user=root
password=

Agak aneh juga menempatkan .my.cnf di vagrant direktori pengguna yang dimiliki oleh root dan hanya dapat dibaca sebagai root.

Setelah memastikan kata sandi kosong di .my.cnf , saya dapat mengatur kata sandi untuk root dengan benar dalam empat konteks tersebut. Perhatikan bahwa gagal dijalankan setelah itu, karena .my.cnf perlu diperbarui, sehingga gagal dalam uji idempotensi.

Ada catatan di halaman modul mysql_user yang memungkinkan yang menyarankan untuk menulis kata sandi dan lalu menulis .my.cnf mengajukan. Jika Anda melakukannya, Anda memerlukan where klausa ke mysql_user action (mungkin dengan file stat sebelumnya).

Yang lebih elegan adalah menggunakan check_implicit_admin bersama dengan login_user dan login_password . Itu idempoten yang bagus.

Sebagai cara ketiga, mungkin check_implicit_admin membuatnya lebih mudah.

Inilah buku pedoman saya yang berhasil menunjukkan hal di atas, diuji dengan beberapa server baru. Agak bangga dengan ini. Catatan .my.cnf tidak perlu untuk semua ini.

---
- hosts: mysql
  vars:
    mysql_root_password: fart
  tasks:
  - name: Install MySQL
    apt: name={{ item }} update_cache=yes cache_valid_time=3600 state=present
    sudo: yes
    with_items:
    - python-mysqldb
    - mysql-server
  #- name: copy cnf
  #  copy: src=.my.cnf dest=~/.my.cnf owner=ubuntu mode=0644
  #  sudo: yes
  - name: Start the MySQL service
    sudo: yes
    service: 
      name: mysql 
      state: started
      enabled: true
  - name: update mysql root password for all root accounts
    sudo: yes
    mysql_user: 
      name: root 
      host: "{{ item }}" 
      password: "{{ mysql_root_password }}"
      login_user: root
      login_password: "{{ mysql_root_password }}"
      check_implicit_admin: yes
      priv: "*.*:ALL,GRANT"
    with_items:
      - "{{ ansible_hostname }}"
      - 127.0.0.1
      - ::1
      - localhost 

(edit- hapus my.cnf)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kehilangan koneksi ke MySQL setelah beberapa saat, dan tidak terhubung kembali

  2. Mengakses database MySQL menggunakan c # pada unity?

  3. Mengekspos nama tabel dan nama bidang di URL permintaan

  4. Praktik terbaik di PHP dan MySQL dengan string internasional

  5. Buat objek PHP secara dinamis berdasarkan string