ansible部署mysql8.0遇到的问题

首先添加mysql8.0yum源,然后安装mysql,我这里用的是本地的ftp源

- name: add mysql80 yum repo
  yum_repository:
    name: mysql80
    description: mysql80
    file: mysql80
    baseurl: ftp://10.11.0.254/software/mysql8.0.37/
    gpgcheck: no
    enabled: yes

- name: install MySQL8.0.37
  yum:
     name: mysql-community-server
     state: present

然后推送mysq配置文件,因为mysql8.0使用密码认证插件是caching_sha2_password,而ansible剧本中一些模块不支持,所以修改配置文件,使用默认mysql_native_password插件

default-authentication-plugin=mysql_native_password

然后启动mysql服务,并在日志中获取临时密码

- name: start MySQL8.0.37
  service:
     name: mysqld
     state: started
     enabled: yes

- name: get raw password
  shell: grep "temporary password" /var/log/mysqld.log | tail -n 1 | awk '{print $NF}'
  register: mysql_raw_password
  ignore_errors: true

在修改root密码中,我最开始想用mysql_user模块来修改root用户密码,但是最先报没有python模块来调用mysql,{"changed": false, "msg": "The PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) module is required."},之后安装模块之后一直报Your password has expired问题,尝试各种方法都没有解决,最后只能用shell命令修改root密码

- name: change MySQL password
  shell: mysql -uroot -p"{{ mysql_raw_password.stdout }}" --connect-expired-password -e "alter user 'root'@'localhost' identified by 'WWW.1.com'"
  ignore_errors: true

安装python连接数据库的模块MySQL-python

- name: install mysql-python
  yum:
     name: MySQL-python
     state: present

然后建立wordpress库

- name: create wordpress database
  mysql_db:
    name: wordpress
    login_user: root
    login_password: WWW.1.com
    login_host: localhost
    state: present

建立wpuser用户,密码WWW.1.com,并授予wordpress库所有权限

- name: create wordpress user
  mysql_user:
    name: wpuser
    password: WWW.1.com
    login_user: root
    login_password: WWW.1.com
    login_host: localhost
    host: localhost
    priv: 'wordpress.*:ALL'
    state: present

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值