Ansible: فشل وحدة MySQL في إضافة امتيازات للمستخدم ؛ يلقي أخطاء.

تم إنشاؤها على ٢٩ سبتمبر ٢٠١٣  ·  3تعليقات  ·  مصدر: ansible/ansible

الإصدارات:

  • أنسبل: 1.3.2
  • بايثون: 2.7
  • نظام التشغيل: Debian 7 (مضيف غير صالح) ، Centos6.4 (عميل) ، Debian Unstable (عميل)
  • MySQL: mysql-5.5.30، amariadb-5.5.33a-MariaDB

طريقة التثبيت:

لقد قمت بتثبيت Ansible بالطريقة التالية:

 الهدف = "/ tmp / ansible01"
 sudo apt-get install python-setuptools
 sudo easy_install virtualenv
 cd $ TARGET && virtualenv ansible
 مصدر $ TARGET / ansible / bin / تفعيل
 نقطة تثبيت غير صالحة

وصف:

باستخدام دليل التشغيل هذا (نسخ / لصق من التوثيق) ، يمكن لاستعلام mysql على العميل إنشاء المستخدم بالفعل. لكنه فشل في تطبيق الامتيازات.

 - الاسم: إعداد كلمة مرور مستخدم Galera
 mysql_user: login_user = {{mysql_user}} login_password = {{mysql_password}} name = {{galera_user}} password = {{galera_password}} state = present priv = *. *: ALL

تم طرح الخطأ:

REMOTE_MODULE mysql_user login_user = root login_password = اسم فضولي = elvis password = spring state = present priv = *. *: ALL
 فادح: [c6-4] => فشل التحليل: Traceback (آخر مكالمة أخيرة):
 ملف "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user" ، السطر 1348 ، في
 رئيسي()
 ملف "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user" ، السطر 405 ، بشكل رئيسي
 تم التغيير = user_mod (المؤشر ، المستخدم ، المضيف ، كلمة المرور ، الخصوصية)
 ملف "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user" ، السطر 188 ، في user_mod
 features_revoke (المؤشر ، المستخدم ، المضيف ، db_table ، منح_الخيار)
 ملف "/root/.ansible/tmp/ansible-1380442867.96-101659379289717/mysql_user" ، السطر 263 ، في الامتيازات_revoke
 cursor.execute (استعلام)
 ملف "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py" ، السطر 173 ، قيد التنفيذ
 المتعامل مع الخطأ الذاتي (ذاتي ، بدون استثناء ، قيمة)
 ملف "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py" ، السطر 36 ، في أداة معالجة الرعب
 رفع فئة الخطأ ، قيمة الخطأ
 _mysql_exceptions.OperationalError: (1045، "تم رفض الوصول للمستخدم 'root' @ 'localhost' (باستخدام كلمة المرور: YES)")


 فادح: فشل جميع المضيفين بالفعل - إحباط

لاحظ أن المستخدم قد تم إنشاؤه بالفعل:

 [root @ c6-4 ~] # mysql mysql -e "حدد مضيف ، مستخدم من مستخدم ؛" | جريب إلفيس
 | المضيف المحلي | الفيس |
bug mysql

ال 3 كومينتر

يبدو أن هذا سؤال مصادقة لوحدة MySQL (ربما تكون هناك حاجة لتعيين my.cnf ، إلخ) ، يرجى التوقف عن القائمة البريدية إذا كنت ترغب في الحصول على بعض المساعدة.

الدرس المستفاد: لا تنسخ / تلصق من المستندات دون تفكير.
للأجيال القادمة:

لقد استخدمت هذه المهمة لتغيير كلمة مرور مستخدم mysql 'root':

 - الاسم- الاسم: إعداد كلمة مرور جذر MySQL
 mysql_user: name = root password = {{mysql_password}} priv = *. *: ALL state = present

يبدو أن هذا قد أعاق منح أذونات "الجذر" ، وبالتالي فشل الجزء التالي من منح الامتيازات لمستخدم تم إنشاؤه حديثًا ...

اللعنة ، لقد حدث نفس الشيء لي. يجب تغيير المستندات هنا في أسرع وقت ممكن.
الآن عليّ إصلاح الكثير من الأنظمة يدويًا :(

أخذني إلى الأبد لمعرفة سبب عمل بعض المكالمات على المستخدمين الحاليين أو إزالة المستخدمين بشكل جيد ولكن إنشاء مكالمات جديدة أمر مستحيل باستخدام نفس بيانات الاعتماد الصحيحة ...
يجب إعادة فتح هذا حتى يتم إصلاح المستندات ويجب أن تكون هناك آلية للوقاية في وحدة mysql_user أو على الأقل تحذير !!!

هذا يمكن أن يكسر الكثير من الأنظمة عن قصد وإيجاد أو إصلاحه أمر مرهق.

إذا كان شخص ما يريد حقًا إزالة المنحة من خلال priv=*.*:ALL فيجب أن يكون هناك خيار آخر لفرض ذلك حتى بالنسبة للمستخدم الجذر (مع تحذير كبير في المستندات من أن هذا قد يتركك بدون أي مستخدم لديه امتيازات Grant) أو يجب أن تفشل إذا وجدت أي مستخدم لديه امتيازات منح متبقية ...

الإصلاح اليدوي هو إعادة تشغيل mysql مع الخيار:
--skip-grant-tables

وقم بتنفيذ الأوامر التالية في الأمر mysql (ملاحظة: GRANT ... ALL .. لا تعمل لأن جداول المنح هذه تم تخطيها duh):

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات