понедельник, 29 июня 2009 г.

Создание новой базы в MySQL

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<password>

mysqladmin -u root -p create new_base
вводим пароль и база создана, теперь раздать на нее права, к примеру для traff

или в консоли mysql
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;


mysql -u root -p
вводим пароль и получаем оболчку
mysql>

вводим
GRANT ALL PRIVILEGES ON new_base.* TO traff@localhost IDENTIFIED BY 'пароль';

Если при попытке создания новой базы вылезло
Can't create database 'database'. (errno: 13)'
значит или сменились права на каталог /var/lib/mysql или владелец - должен быть mysql:mysql

суббота, 13 июня 2009 г.

Perl и парсер полного имени файла

Для разделения полного имени файла на директорию, само имя, и расширение очень удобен модуль File::Basename

use File::Basename;

$fullname = "/usr/local/src/perl-5.6.1.tar.gz";

$file = basename($fullname);
# file="perl-5.6.1.tar.gz"

$dir = dirname($fullname);
# dir="/usr/local/src"


($file,$dir,$ext) = fileparse($fullname, qr/\..*/);
# dir="/usr/local/src/" file="perl-5" ext=".6.1.tar.gz"

($file,$dir,$ext) = fileparse($fullname, qr/\.[^.]*/);
# dir="/usr/local/src/" file="perl-5.6.1.tar" ext=".gz"

($file,$dir,$ext) = fileparse($fullname, qr/\.\D.*/);
# dir="/usr/local/src/" file="perl-5.6.1" ext=".tar.gz"

($file,$dir,$bak) = fileparse("/tmp/file.bak",
qr/~+$/, qr/\.(bak|orig|save)/)
# dir="/tmp/" file="file" ext=".bak"

($file,$dir,$bak) = fileparse("/tmp/file~",
qr/~+$/, qr/\.(bak|orig|save)/)
# dir="/tmp/" file="file" ext="~"

The File::Basename module provides functions to parse pathnames into their individual components. The dirname function pulls out the directory portion and basename the nondirectory portion. The more elaborate fileparse function picks out the full pathname into the directory name, the filename, and the suffix; you must supply a list of regular expressions describing the suffixes that interest you. The examples above illustrate how choice of suffix patterns affects the result. By default, these functions parse pathnames according to the native conventions of your current platform. The fileparse_set_fstype function selects a different platform's parsing rules, such as fileparse_set_fstype("VMS") to parse names using VMS rules, even when running on non-VMS systems.