Как я могу использовать mysqldump для тиражирования представлений между учетными записями?

Могу ли я предложить вам реализовать addCustomer следующим образом. Используйте локальный Statement и создайте его, используя стиль try-with-resource, а затем установите параметры для запроса

public void addCustomer(String name, String surname, String company, String adress, String adressTwo){
    String addQuery = "insert into musteri (name,surname,company,adress,adressTwo) values (?,?,?,?,?)" ;

    try (PreparedStatement stmt = con.prepareStatement(addQuery)) {
        stmt.setString(1, name);
        stmt.setString(2, surname);
        stmt.setString(3, company);
        stmt.setString(4, adress);
        stmt.setString(5, adressTwo);
        stmt.executeUpdate();
        System.out.println("Data Added");
    } catch (Exception e) {
        System.out.println("Error occured when adding value to database : " + e );
    }
}
19
задан Adam Bellaire 30 September 2008 в 18:29
поделиться

4 ответа

та же проблема. Я решил его тот путь:

mysqldump -uuser1 -ppassword1 database1 > backup.sql

sed '/^\/\*\!50013 DEFINER/d' backup.sql > backup_without_50013.sql

mysql -u user2 -ppassword2 -D database2 < backup_without_50013.sql

интересная вещь команда sed, которая, здесь, удаляет все начало строк /*! 50013.

Heidy

27
ответ дан 30 November 2019 в 03:16
поделиться

Пункты БЕЗОПАСНОСТИ SQL определяют, какую учетную запись MySQL использовать при проверке прав доступа на представление (поскольку Вы, вероятно, выяснили).

при создании представления, можно определить несколько опций для безопасности для того представления. Можно читать, больше здесь , но по существу доступом по умолчанию ограничивается 'устройством определения' представления, т.е. пользователем, который создал его.

2
ответ дан 30 November 2019 в 03:16
поделиться

Запустите mysqldump с опцией «- skip-triggers»

0
ответ дан 30 November 2019 в 03:16
поделиться

Вам нужно будет обработайте файл резервной копии и измените DEFINER:

DEFINER = user_a @ localhost

Я хотел бы изменить его на:

DEFINER = CURRENT_USER

Затем он будет автоматически связан с аккаунтом, который его загружает.

12
ответ дан 30 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: