[英]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.