2016-05-30 73 views
0

我想在使用Vagrant的Ubuntu Trusty64上自动安装MySQL 5.7。这是我怎么安装的样子:如何使用Ansible和Vagrant安装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 

这将安装的MySQL 5.7在流浪实例,但是当我尝试登录使用mysql -p -u root它根本不起作用;它似乎没有更多的空密码,我试图检查输出。

是否有任何方法获取密码或在安装过程中设置它?

+1

'mysql_user'任务可以在这里帮忙吗? http://docs.ansible.com/ansible/mysql_user_module.html – halfer

回答

0

这是我如何在颠沛流离的安装后配置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 

我不记得我是如何达到这一点,它已经相当长一段时间。可能是一些链接和实验。试一试。

0

我发现有趣的是,用户vagrant mysql -p -u root或者简单的mysql -u root不起作用....但是如果你像root一样做,你就没有密码,你可以开始做你的事情...

干杯!

+1

在根用户的主目录下检查一个'.my.cnf'文件,看看这是为什么。你可能想要编辑这个答案,以更全面地解释为什么这会起作用,以及如何使用这些信息继续使用这些信息来设置root用户的凭据或创建更多用户等等。 – ydaetskcoR

1

从版本5.7开始,MySQL不仅安装了root用户的空密码,还安装了用于root帐户的身份验证插件auth_socket,因此您可以以root用户身份启动mysql,而不需要密码,但同一命令不会让您进入它由另一个用户开始。这很好,但我们很多人都很惊讶。为了实现旧式行为,我们来你需要改变身份验证插件,并在一次使用的命令是这样设置的密码:

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

我发现它很好地说明如下:Change user password in MySQL 5.7 with “plugin: 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避免停止我的剧本,当它再次运行 - 此命令将不设置密码后工作。

+0

我读过你可以做到这一点带有“debconf”模块,但它在Ubuntu 14.04和MySQL 5.7以及2.3.0.0-1中似乎不起作用 – SomethingOn