Немного поздно, но если у вас есть root-доступ, вы можете сделать следующее напрямую:
Войдите в свой mysql как root,
$ mysql -u root -p
Показать базы данных ;
mysql>SHOW DATABASES;
Выберите базу данных mysql, в которой находится информация о всех привилегиях.
mysql>USE mysql;
Показать таблицы.
mysql>SHOW TABLES;
Таблица о привилегиях для вашего случая это «db», поэтому давайте посмотрим, какие у него есть столбцы:
mysql>DESC db;
Чтобы перечислить права пользователей, введите следующую команду, например:
mysql>SELECT user, host, db, Select_priv, Insert_priv, Update_priv, Delete_priv FROM db ORDER BY user, db;
Если вы не можете найти этого пользователя или если вы видите, что у этого пользователя есть «N» в столбце Select_priv, вам необходимо либо ВСТАВИТЬ, либо ОБНОВИТЬ соответственно:
INSERT:
INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv) VALUES ('localhost','DBname','UserName','Y' ,'N','N','N');
UPDATE:
UPDATE db SET Select_priv = 'Y' WHERE User = 'UserName' AND Db = 'DBname' AND Host='localhost';
Наконец, введите следующую команду:
mysql>FLUSH PRIVILEGES;
Ciao.
С помощью base R
мы получаем basename
и используем sub
для захвата слова перед .
, за которым следуют символы, которые не являются .
до конца ($
) строки и заменить на обратную ссылку (\\1
) захваченной группы
sub(".*_(\\w+)\\.[^.]+$", "\\1", basename(mystring))
#[1] "cat" "master"
Если это фиксированный символ
sub(".*_(\\w+)\\.rds", "\\1", basename(mystring))
Или используя gsub