Mysql
 sql >> база данни >  >> RDS >> Mysql

Инсталирайте MySQL с ansible на ubuntu

Когато mysql-server е инсталиран без глава, няма парола. Следователно да направите .my.cnf работи, трябва да има празен ред за парола. Ето с какво тествах за .my.cnf :

[client]
user=root
password=

Също така е малко странно да поставите .my.cnf във вашия vagrant потребителска директория като собственост на root и може да се чете само като root.

След като се уверите, че паролата е празна в .my.cnf , успях правилно да задам паролата за root в тези четири контекста. Обърнете внимание, че не успява да се стартира след това, тъй като .my.cnf ще трябва да бъде актуализиран, така че се провали на теста за идемпотентност.

На страницата на модула ansible mysql_user има бележка, която предлага да напишете паролата и след това писане на .my.cnf файл. Ако направите това, имате нужда от where клауза към mysql_user действие (вероятно с файлова статистика преди това).

Още по-елегантно е да използвате check_implicit_admin заедно с login_user и login_password . Това е прекрасно идемпотентно.

Като трети начин, може би check_implicit_admin го прави още по-лесно.

Ето моята успешна книга, показваща горното, тествана с няколко нови сървъра. Малко се гордея с това. Забележете .my.cnf не е необходимо за всичко това.

---
- 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 

(редактиране - премахна 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. Не може да се премине към ред 0 на MySQL резултатен индекс 13

  2. Пребройте честотата на всяка дума

  3. NodeJS MySQL:измерване на времето за изпълнение на заявка

  4. mySQL множествена заявка - връща грешка mysql_fetch_array

  5. Как да кача изображение на PHP и да вмъкна път в MySQL?