Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cài đặt MySQL với ansible trên ubuntu

Khi mysql-server được cài đặt không cần thiết, không có mật khẩu. Do đó, để tạo ra .my.cnf hoạt động, nó phải có một dòng mật khẩu trống. Đây là những gì tôi đã kiểm tra với .my.cnf :

[client]
user=root
password=

Cũng hơi lạ khi đặt .my.cnf trong vagrant của bạn thư mục người dùng do root sở hữu và chỉ có thể đọc được với quyền root.

Sau khi đảm bảo mật khẩu trống trong .my.cnf , Tôi đã có thể đặt đúng mật khẩu cho root trong bốn ngữ cảnh đó. Lưu ý rằng nó không thể chạy sau đó, vì .my.cnf cần được cập nhật, vì vậy nó không thành công trong bài kiểm tra độ tin cậy.

Có một ghi chú trên trang mô-đun mysql_user không thể truy cập được đề xuất viết mật khẩu và sau đó viết .my.cnf tập tin. Nếu bạn làm điều đó, bạn cần một where mệnh đề tới mysql_user hành động (có thể là với một thống kê tệp trước đó).

Thanh lịch hơn nữa là sử dụng check_implicit_admin cùng với login_userlogin_password . Điều đó thật tuyệt vời.

Theo cách thứ ba, có lẽ check_implicit_admin làm cho nó thậm chí còn dễ dàng hơn.

Đây là playbook thành công của tôi hiển thị ở trên, được thử nghiệm với một vài máy chủ mới. Kinda tự hào về điều này. Lưu ý .my.cnf là không cần thiết cho tất cả những điều này.

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

(chỉnh sửa- đã xóa 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. Giải thích về khung khả dụng cao của MySQL - Phần I:Giới thiệu

  2. Làm cách nào để thay đổi múi giờ MySQL trong kết nối cơ sở dữ liệu bằng Java?

  3. Các bảng này liên quan với nhau như thế nào?

  4. Cài đặt và cấu hình MySQL trên Ubuntu 20.04

  5. Hiệu suất của MYSQL IN