簡體   English   中英

如何使用Ansible和Vagrant安裝MySQL 5.7?

[英]How to install MySQL 5.7 using Ansible and Vagrant?

我正在嘗試使用Vagrant在Ubuntu Trusty64上自動安裝MySQL 5.7。 這是我的安裝樣子:

- name: Install new APT package repository
  apt: deb=mysql-apt-config_0.7.2-1_all.deb
  sudo: yes
- name: Updating the cache
  apt: update_cache=yes
  sudo: yes
- name: Install mysql server
  sudo: yes
  apt: pkg={{ item }} state=latest
  with_items:
    - mysql-server
    - mysql-client
    - python-mysqldb

這會在Vagrant實例上安裝MySQL 5.7,但是當我嘗試使用mysql -p -u root登錄時,它根本不起作用; 似乎不再有空密碼了,我嘗試檢查輸出。

有什么方法可以獲取密碼或可以在安裝過程中進行設置嗎?

由於安裝了5.7版MySQL,不僅為root設置了空密碼,而且為root帳戶設置了身份驗證插件auth_socket,因此您可以以root用戶身份啟動mysql而無需輸入密碼,但是當另一個用戶啟動該命令時,該命令將不允許您進入用戶。 很好,但令我們許多人驚訝。 為了實現老式的行為,我們習慣於您需要更改身份驗證插件並使用以下命令立即設置密碼:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

我在這里很好地解釋了這一點: 在MySQL 5.7中使用“插件:auth_socket”更改用戶密碼 (然后輸入信用額)

這是我的Ansible片段:

  - name: Set MySQL root password
    command: /usr/bin/mysql -e "alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourrootpassword';"
    ignore_errors: yes
    become: yes

我使用了ignore_errors來避免劇本再次運行時停止播放-設置密碼后此命令將無法使用。

這是我在無業游民安裝后配置mysql的方法:

- name: Configure mysql step 1
  shell: echo mysql-server mysql-server/root_password password vagrant | debconf-set-selections
  become: true

- name: Configure mysql step 2
  shell: echo mysql-server mysql-server/root_password_again password vagrant | debconf-set-selections
  become: true

- name: Create mysql client configuration file
  blockinfile:
    dest: ~/.my.cnf
    create: yes
    block: |
      [client]
      user=root
      password=vagrant

我不記得我是怎么做到的,已經有一段時間了。 可能有一些聯系和實驗。 試試看。

我發現有趣的是,使用用戶無所事事的mysql -p -u root或僅使用mysql -u root都無法正常工作。

干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM