Блог

  • Проблемы с phpmyadmin, или убираем ошибку импорта баз.

    Если у вас при импорте возникает ошибка — «Соединение было сброшено» необходимо поменять следующее. В php.ini, меняем:
    upload_max_filesize
    post_max_size 
    max_execution_time 
    Лучше задать большие чем сейчас размеры. 
    Так же меняем файлы в самом phpmyadmin:
    vi /etc/phpmyadmin/config.inc.php
    вставить:
    $cfg[\’ExecTimeLimit\’] = 3600;
    После установки новых значений, необходимо перезапустить службу apache. 
    Есть проблемы с Linux сервером? Обращайтесь — office@itfb.com.ua
  • Принудительное восстановление InnoDB

    Если обнаружено повреждение страницы базы данных вы можете сохранить таблицы такой командой SELECT … INTO OUTFILE. Как правило, большинство данных, полученных таким образом не повреждено. Тем не менее не исключено к повреждению таблицы может привести и операция select * from table_name или выполнение фоновых операция InnoDB или восстановление повторных транзакций может привести к краху. В таких случаях вы можете использовать опцию innodb_force_recovery (указав её в конфиге БД), после перезапуска вы сможете создать бэкап (дамп) таблиц. Например в ваш конфигурационный файл my.cnf в соответствующий раздел добавьте следующее:

    [mysqld]

    innodb_force_recovery = 4

    По умолчанию innodb_force_recovery = 0 (Обычный запуск без принудительного восстановления), допустимые положительные значения отличные от нуля. Большее значение этой опции включают больше мер по восстановление чем меньшие. Если вам удалось сохранить таблицы с значением innodb_force_recovery = 4, то можете быть уверены, что только незначительная часть данных может быть повреждена. Значение 6 является более радикальным, в следствии чего может быть повреждено больше данных, и структур. Значения, которые может принимать опция innodb_force_recovery:

    1 (SRV_FORCE_IGNORE_CORRUPT)

    Продолжать работу сервера даже если обнаружены поврежденные страницы. Попробуйте выполнить SELECT * FROM table_name, данные будут выбраны пропуская поврежденные записи, индексы или страницы, что позволит вам создать дамп таблицы.

    2 (SRV_FORCE_NO_BACKGROUND)

    Предотвратить запуск основного процесса. Это значение параметра для предотвращения сбоя во время восстановления.

    3 (SRV_FORCE_NO_TRX_UNDO)

    Не запускать откат транзакций после восстнаовления

    4 (SRV_FORCE_NO_IBUF_MERGE)

    Запретить выполнение операция  insert buffer merge. Если они могут привести к повреждения не выполняйте их, не запускайте сбор статистики.

    5 (SRV_FORCE_NO_UNDO_LOG_SCAN)

    Считать не завершенные транзакции InnoDB завершенными не обращая внимания на лог транзакция.

    В нормальном состоянии эта опция не должна быть отлична от 0.

    Если Вам необходимо восстановить БД mysql обращайтесь Office@itfb.com.ua

  • MyISAM или InnoDB ? Какой движок Mysql выбрать ?

    Перед вами стал тяжёлый выбор ? Что же выбрать MyISAM или InnoDB ? Вот основной список отличий:
    MYISAM поддерживает только блокировки на уровне таблиц
    MyISAM предназначены для скорости ! Но за скорость надо платить функционалом…
    MyISAM не поддерживает внешние ключи, следовательно, мы называем MySQL с MYISAM – DBMS
    MyISAM хранит свои таблицы, данные и индексы на диске в отдельных трех файлах (tablename.FRM, tablename.MYD, tablename.MYI)
    MYISAM не поддерживает транзакции. Вы не можете откатить транзакцию с MYISAM. После того как вы выполните команду – назад пути нет.
    MYISAM поддерживает полнотекстовый поиск
    Используйте MyISAM если у вас таблицы статические, и запросы в основном на выбор (select), и мало запросов на обновление и удаление данных.
    INNODB:
    InnoDB поддерживает блокировки на уровне строк
    InnoDB разработан для максимальной производительности при обработке больших объемов данных
    InnoDB поддерживает внешние ключи, следовательно, мы называем MySQL с InnoDB является RDBMS
    InnoDB хранит свои таблицы и индексы в табличном пространстве
    InnoDB поддерживает транзакции. Вы можете сделать откат операции
    Есть сложности с выбором движка mysql или с настройкой mysql? Обращайтесь – office@itfb.com.ua
  • Переименовать базу Mysql

    Если вам необходимо переименовать базу в Mysql можно использовать следующие команды:
    mysql -e “CREATE DATABASE `new_database`;”
    for table in `mysql -B -N -e “SHOW TABLES;” old_database`
    do 
      mysql -e “RENAME TABLE `old_database`.`$table` to `new_database`.`$table`”
    done
    mysql -e “DROP DATABASE `old_database`;”
    Есть проблемы с mysql ? Обращайтесь – office@itfb.com.ua
  • Восстановление или ремонт таблиц или индексов mysql

    Бывают ситуации, когда таблица или индекс могут повредиться. Это может быть обусловлено изменениями в mysql или в наборе обрабатываемых данных. Например, ошибка в сортировке, требуется восстановить таблицу для обновления индексов для символьных столбцов, которые используют параметры сортировки. Так же восстановление таблиц может потребоваться после проверки целостности таблиц коммандами CHECK TABLE , mysqlcheck или mysql_upgrade.

    Для восстановления, пересоздания таблиц в случает обновления БД mysql или понижения версии используйте только метод dump-and-reload (создание бэкапа таблицы с последующем восстановлением из него). Таким образом прежде чем обновлять базу mysql или понижать версию БД, необходимо создать дамп базы данных, например используя mysqldump. После обновления или понижения версии восстановить базу из файла дампа. Если Вы используете этот метод только для пересоздания индексов, то дамп и восстановление, можно делать как до так и после обновления или отката версии.

    Чтобы пересоздать таблицу использую дамп и восстановление выполните следующие действия:

    mysqldump db_name table1 > dump_table.sql

    mysql db_name < dump_teble.sql

    Для восстановления всех таблиц нет необходимости их перечислять, используйте следующие комманды:

     

    mysqldump db_name > dump.sql

    mysql db_name < dump.sql

    Для восстановления всех таблиц во всех базах данных mysql используйте опцию –all-databases

     

    mysqldump –all-databases > dump.sql

    mysql < dump.sql

    Для пересоздания таблицы с помощью команды ALTER TABLE не изменяйте механизм хранения, используйте тот, что уже имеется, например lдля MyIsam:

    ALTER TABLE table1 ENGINE = MyISAM

    Если Вы не уверены в том какой механизм хранения используется для таблицы Вы можете это узнать выполнив команду:

    SHOW CREATE TABLE для отображения параметров таблицы.

    Если необходимо пересоздать таблицу, поскольку проверка таблицы выдала сообщение о том, что таблица повреждена используйте команду: REPAIR TABLE, только если данный тип хранения таблицы поддерживает эту операцию. Например MyISAM поддерживает, поэтому выполняем:

    REPAIR TABLE table1

    Для систем хранения таблиц InnoDB, REPAIR TABLE не поддерживается. Для пересоздания и восстановления таких таблиц используйте mysqldump для создания дампа с последующим его восстановлением, как было описано вначале.

    mysqlcheck –repair – предоставляет возможность восстановления таблиц аналогично REPAIR TABLE, только данное выражение удобнее так как можно использовать опции  –databases или –all-databases для починки сразу всех таблиц в конкретных базах данных и во всех базах данных mysql соответственно:

    mysqlcheck –repair –databases db_name1 db_name2 …

    mysqlcheck –repair –all-databases 

    В MySQL 5.1.24 присутствует ошибка Bug #27877  utf8_general_ci and ucs2_general_ci кодировки (сотрировки), он был исправлен в версии MySQL 5.1.62, 5.5.21 и 5.6.5. Установите любую из версий с исправлением, затем конвертируйте таблицы используя один из следующих методов:

    • Измените кодировку (сортировку) на utf8_general_mysql500_ci и ucs2_general_mysql500_ci, что соответствует  utf8_general_ci and ucs2_general_ci в версии MySQL 5.1.24

      Для преобразования таблиц пострадавших после обновления измените настройки используя новые значения параметра сортировки. Предположим таблица содержит один или несколько проблемных столбцов utf8. Для преобразования таких таблиц используйте команду:

      ALTER TABLE table1 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci;

      Для применения изменений для столбцов используйте такуюже команду только без COLLATE:

      ALTER TABLE table1 MODIFY c1 CHAR(N) CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci;

    • Для обновления с помощью процедуры дампа и восстановления. Создайте файл дампа, измените в нем кодировку для выражений CREATE TABLE, это можно сделать авто заменой, затем восстановите из фала дампа.

    После проделанных исправлений CHECK TABLE не должна выдавать ошибок.

    Если у Вас проблемы с Базой данных mysqlи Вы не можете их решить, обращайтесь к нам (контакты), мы с радостью Вам поможем. 

  • Бэкап mysql с игнорированием одной таблицы

    Если вам необходимо сделать дамп базы mysql и игнорировать одну из таблиц, можно использовать следующую команду:
    mysqldump -u username -p database –ignore-table=database.table1
    Есть проблемы с установкой и настройкой Mysql? Обращайтесь – office@itfb.com.ua
  • Создание символической ссылки в Windows

    Зачем это нужно? Предположим есть программа, которая сохраняет или загружает данные по определенному пути к папке (C:folder1folder2). Изменить эти настройки вы не в силах, но при этом данные не должны там хранится. Например программа ссылается на диск C, а у вас нет места на нем что бы хранить инфо и вы храните её на диске D (D:folder3folder4).

    1. Создаем структуру каталогов:

    C:folder1

    2. В cmd переходим в эту папку

    cd C:folder1

    3. Создаем символическую ссылку

    mklink folder2 /D D:folder3folder4

    4. Проверяем при переходе C:folder1folder2 мы попадаем D:folder3folder4

  • Проверка, починка и оптимизация таблиц в Mysql на движке Myisam

    Если вы используете в работе сервер Mysql с таблицами myisam, то вам наверняка пригодятся следующие команды:
    mysqlcheck -u root -p –auto-repair –all-databases  – позволяет починить все базы
    mysqlcheck -u root -p –check –all-databases  – проверить все базы
    mysqlcheck -u root -p –optimize –all-databases  – оптимизировать все базы
    Есть проблемы с настройкой базы данных mysql? Обращайтесь – office@itfb.com.ua
  • Запуск программы от имени другого пользователя из скрипта

    Допустим есть необходимость запустить программу от имени другого пользователя. Для этого мы как обычно нажимаем на ярлыке программы правой кнопкой мыши удерживая при этом Shift, в контекстном меню появится пункт “Запуск от имени другого пользователя”. Все это конечно понятно, но не для простых пользователей, которые и не подозревают для чего нужна правая кнопка мыши. Поэтому решением этой проблемы может быть создание например ярлыка с таким содержимым:

    %windir%system32
    unas.exe /user:testuser@domen /savecred “C:Program FilesSAPFrontEndSAPguisaplogon.exe”

     ключ /savecred – означает запомнить пароль после первого ввода, /user – имя пользователя от которого необходимо запускать программу, и в конце путь к Вашей программе.

    И так пользователь просто клацает по ярлыку и программа запускается с нужными разрешениями.

  • Как запустить скрипт с правами администратора ?

    Если вам необходимо запустить скрипт с правами администратора, можно использовать следующую команду:
    runas /user:Administrator Example1Server.exe
    Есть проблемы с Windows Server ? Обращайтесь – office@itfb.com.ua