Показаны сообщения с ярлыком mysql. Показать все сообщения
Показаны сообщения с ярлыком mysql. Показать все сообщения

11 июн. 2013 г.

Восстановление или сброс пароля пользователя root базы данных MySQL

Бывает, вы просто забыли/потеряли пароль для суперпользователя БД MySQL, но доступ суперпользователем на сервер у вас есть.
Тогда чтобы восстановить пароль делаем следующее.

1. Останавливаем демона mysqld:

/etc/init.d/mysqld stop

2. Запускаем mysql в безопасном режиме:

mysqld_safe --skip-grant-tables &

3. Заходим в мускуль под рутом в этом режиме без пароля:

mysql -u root -p

4. Меняем пароль пользователя root на новый:

mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit


5. Возвращаем всё на круги своя (т. е. перезапускаем мускуль в нормальном режиме) и тестируем:

/etc/init.d/mysqld stop
/etc/init.d/mysqld start
mysql -u root -p

14 дек. 2012 г.

SQLAlchemy в Python

В python для работы с MySQL есть библиотечка SQLAlchemy.
У неё много всяких фишек-плюшек, но я в подавляющем большинстве случаев использую конструкции такого типа:


from sqlalchemy import create_engine
b_connection_string = 'mysql://user:password@localhost/db_name'
user = "admin"
db =  create_engine(db_connection_string)
for row in db.execute("select Permissions from users where Name = \"%s\""%(user)):
    result.append(str(row))

Где в 1й строчке мы импортируем функцию, затем создаем соединение с БД, а затем выполняем какой-то запрос. В итоге мы получим такую конструкцию (в данном примере):

["('On, Off, Bla-bla',)"]

Теперь можно облагородить результат, добавив , например:


result = result[0].replace("('","")
result = result.replace("',)","")
result = result.replace(", ", ",")

Получим в result:  'On, Off, Bla-bla'

10 сент. 2012 г.

Авторизация в Apache c помощью MySQL (mod-auth-mysql)

MySQL авторизация - неплохой вариант, особенно для сайтов, использующих эту БД.
Порывшись в инете, разобрался, как её настроить и вот шаги, котором следует последовать :)

1. Устанавливаем необходимый софт (имеется в виду, что веб-сервер уже есть и настроен):

apt-get install libapache2-mod-auth-mysql
a2enmod auth_mysql


2. Создаем для примера БД:

mysql -u root -p
mysql> grant all on auth.* to auth_user@localhost identified by '<auth_password>';
mysql> flush privileges;
mysql> create database auth;
mysql> use auth;
mysql> CREATE TABLE `clients` (
`username` varchar(25) NOT NULL default '',
`passwd` varchar(25) NOT NULL default '',
`groups` varchar(25) NOT NULL default '',
PRIMARY KEY (`username`),
KEY `groups` (`groups`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
mysql> INSERT INTO `clients` VALUES ('<username>', '<password>', '<group>');


3. Редактируем файл виртуалхоста (или .htaccess нужной папки), например:

nano /etc/apache2/sites-available/default


<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride All

        </Directory>
        <Directory /var/www/>    
                AuthMYSQL on     #включает авторизацию по мускулю
                AuthMySQL_Authoritative on
                AuthMySQL_DB auth     #имя БД, в которой находится наша авторизация
                AuthMySQL_Host 127.0.0.1     #адрес или имя хоста с мускулем

                #AuthMySQL_Port 3306     #порт, если отличен от дефолтового
                #AuthMySQL_Socket <socket>    #сокет, если используется

                AuthMySQL_User auth_user     #пользователь БД
                AuthMySQL_Password <auth_password>     #пароль пользователя БД
                AuthMySQL_Password_Table clients     #таблица паролей
                AuthMySQL_Username_Field username     #поле, содержащее имя пользователя
                AuthMySQL_Password_Field passwd     #поле, содержащее праоль пользователя
                #AuthMySQL_Group_Table clients     #поле, содержащее принадлежность к группе
                AuthMySQL_Empty_Passwords off     #запретить пустые пароли
                Auth_MySQL_Encrypted_Passwords off    #если on - указывается, что пароли зашифрованы
                AuthMySQL_Encryption_Types Plaintext     #типа шифрования - может быть Plaintext, Crypt_DES, MySQL. Можно через пробел указывать несколько методов, которые будут использоваться по-очереди
                AuthBasicAuthoritative Off     #Отключить Basic-авторизацию - какойто костыль, без него не работает
                AuthUserFile /dev/null     #типа файл с паролями - тоже костыль
                Require valid-user     #требовать авторизацию. Тут также можно указывать имена групп (несколько - через пробелы): Require group assassins templars .Или конкретных пользователей: Require user leonardo vincent .Это удаобно, если прописывать опции в .htaccess
                AuthName "Please Auth!"     #приветствие
                AuthType Basic #костыль
                <Limit GET POST> #ограничения для запросов                Require valid-user     
                </Limit>     

                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                AddHandler mod_python .py
                PythonHandler index
        </Directory>

30 авг. 2012 г.

Django ошибка django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb при синхронизации БД.

Вы настроили параметры соединения с БД MySQL в settings.py, но при выполнении синхронизауии

python ./manage.py syncd

Вылетает простыня ошибок, а в конце:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Проблема в отсутствии моделя mysql для питона.
Решение:

apt-get install python-mysqldb

Для других конфигураций работают команды:

pip install MySQL-python
easy_install MySQL-python

31 янв. 2012 г.

Изменить пароль админа (admin) Sugar CRM через MYSQL

Заходим на сервере в мускуль и выполняем команды:

Используем БД шугара (ваше имя может отличаться):

use sugarcrm;

Меняем пароль:

UPDATE users SET user_hash = MD5('new_password_here') WHERE id = 1;

Дело в шляпе.

30 янв. 2012 г.

Восстановление пароля администратора (admin) Wordpress с помощью MYSQL

Был недавно такой таск - нужно было проверить после некоторых манипуляций работу Wordpress. А сделать это без админского аккаунта нельзя. Но были доступы к MYSQL на сервере. Спрашивать доступы у клиента было тоже не возможно, потому пришлось немного взломать вордпресс :)

Заходим в мускуль:

mysql -uroot -p

Далее переходим в нужную базу (какая именно нам нужна можно посмотреть в тексте файла wp-config.php, который находится в корневой директории сайта)

use имя-базы;

Посмотреть, какие у нас есть БД можно с помощью:

show databases;

Смотрим таблицы, если нужно:

show tables;

Если случай как у меня, ти смотрим и сохраняем себе где-нибудь старый пароль:

select * from wp_users;

Меняем на пароль ‘password’ (пароль вордпресс хранит в виде хэша, потому записать просто значение пароля не получится):

UPDATE wp_users SET user_pass='5f4dcc3b5aa765d61d8327deb882cf99' WHERE ID = 1;

Делаем свои благие или черные дела и, если случай как у меня, после всего меняем хэш пароля на старый с помощью предыдущей команды (подставив туда старый хэш, ессно).

5 янв. 2012 г.

Установка apache php mysql на centos 5.7

В принципе, всё просто, но если давно не делал - то туговато вспоминается как заставить апач контачить с пхп :)

В общем, устанавливаем необходимые пакеты командой:

yum install httpd httpd-devel php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml mysql-server
Далее запускаем апач и мускуль и добавляем их в автозагрузку:

/etc/init.d/httpd start
/etc/init.d/mysqld start
chkconfig mysqld on
chkconfig httpd on


Затем правим конфиг апача:

nano /etc/httpd/conf/httpd.conf

Находим строчку, раскомментируем, и вписываем туда своё доманное имя:

#ServerName http://www.example.com:80

Перезагружаем апач, чтобы изменения вступили в силу:

/etc/init.d/httpd reload

Далее для теста создаем файлик в дефолтном виртуалхосте:

nano /var/www/html/phpinfo.php

В файлик записываем:

<?php phpinfo(); ?>

Сохраняем и проверяем: http://ip.address/phpinfo.php

Если видим страничку с информацией о пхп - всё получилось.

Можно еще установить пароль на пользователя root в mysql:

/usr/bin/mysqladmin -u root password 'passwd'