Sdscompany.ru

Компьютерный журнал
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Из access в mysql

Как связать Access с MySQL

В статье рассказывается как связать MS Access с базой данных MySQL, чтобы данные хранились не в файле mdb, а в таблицах MySQL.

1) Нужно поставить MySQL сервер, скачав по адресу mysql.com. Ставится легко, главное указать пароль к серверу и не забыть его.

2) Нужно установить ODBC driver, скачав по адресу mysql.com. Без него Access не сможет подключаться к MySQL.

3) Access умеет работать со связанными (linked) таблица, но они уже должны быть уже созданы! На рисунке видно что создана база данных (database) my_access с таблицей mytable1. В mytable1 созданы 2 поля id и FIO для примера. Создавать базу данных и таблицы можно любым доступным способом, я использовал MySQL Query Browser из mysql-gui-tools-5.0-r17-win32.msi. Этот этап называется проектированием базы данных и тут подробно расписывать не буду, это отдельная история. Смысл один! Нужно создать базу данных и нужные таблицы с нужными полями.

4) Создание связей. Запустите Access и в нем создайте базу данных и сохранитесь. Не создавайте таблиц и что либо. Откройте меню Файл — Внешние данные — Связь с таблицами. В окне связь укажите ODBC Databases () как на рисунке

5) В появившемся окне Выбор источника данных переключитесь на закладку Источник данных компьютера и нажмите кнопку Создать. Выберите MySQL ODBC Driver как на рисунке.

6) В окне от MySQL заполните поля Data Source Name, укажите Server — в это поле нужно вписать адрес сервера в сети, если Access и MySQL находятся на одном компьютере, то можно вписать localhost (это адрес 127.0.0.1). Если MySQL находится на другом компьютере, то нужно указать адрес того компьютера, для этого понадобится помощь администратора сети и/или баз данных. Укажите User и Password, Имя и Пароль для доступа к базам данных, эти данные должны быть запомнены при установке MySQL или выданы администратором. Обязательно укажите к какой базе данных подсоединятся (на примере my_access созданная на этапе 3. Нажмите кнопку Test для проверки правильности подключения, ответ должен быть успешным Connection successful.

7) После указания параметров подключения вы вернетесь на этап Выбор источника данных. Выберите только что созданное соединение с MySQL (у меня это access2mysql), укажите таблицы для связи.

8) Можно работать со связанными таблицами как с обычными, только данные будут хранится не в файле mdb, а в базе данных MySQL. На рисунке показано, что введённые в таблицу mytable1 в Access, хранятся в MySQL и это показывает MySQL Query Browser

Организация работы MS Access-приложения с MySQL

Почему MySQL?
Преимущества MySQL перед mdb-файлом слишком очевидны, чтоб долго на них останавливаться. Это преимущество полноценного SQL-сервера перед файл-серверной рептилией. Для работы с базой данных , хранящейся в файле — mdb, нужно иметь полный доступ к нему. Вот тебе, бабушка, и удалённый доступ, и надёжность данных. Мне приходилось в двух организациях менять сетевые карты всем клиентским компьютерам, чтоб файл mdb не разрушался, выдавая Нераспознаваемый формат базы данных (хорошо хоть MS Access, начиная с версии 2000, научился их восстанавливать). О транзакциях, триггерах и других чертах современной базы данных разговор даже не идёт: эти черты даже не имитируются в mdb — файлах.

Но MS Access может взаимодействовать и с другими SQL-серверами, и Microsoft подталкивает нас к взаимодействию с MS SQL Server, снабжая нас для этого всем необходимым. Но я выбрал «мускул», руководствуясь следующими причинами.

— Официальная бесплатность для разработчика
— Возможность легально скачать дистрибутив (от 16 до 50 мегабайт в зависимости от вида дистрибутива) из Интернета
— Кроссплатформенность (не надо беспокоиться, под какой ОС работает сервер)
— Простота установки (вплоть до простого копирования!) и обновления
— Наличие полной и внятной документации
— То есть MySQL — это сервер, который всегда с тобой

Этапы организации работы MS Access-приложения с MySQL
Вам предстоит проделать следующее:

1. Установить на сервере MySQL
2. Настроить поддержку кириллицы для MySQL
3. Создать базу данных Вашего приложения
4. Установить драйвер ODBC на все машины, на которых работает Ваше приложение
5. В случае MS Access 2003 — установить обновления для корректной работы ODBC
6. Изменить код приложения — для автоматического подключения таблиц

Рассмотрим эти этапы. Изложение я буду вести по принципу sapienti sat (умному достаточно), и прошу прощения у тех, кто не смог извлечь из моих инструкций пользу — постараюсь ответить на письма (адрес Вы найдёте на странице http://db-maker.narod.ru/contactrus.htm). Итак.

Установка на сервере MySQL

Предполагаем, что сервер у Вас на Windows. Если это не так — Вам нужно обращаться к документации (http://dev.mysql.com/doc/refman/4.1/en/installing.html).
Идёте на страницу http://dev.mysql.com/downloads/, первый раздел MySQL Community Server, выбираете рекомендуемый, т.е. Current Release (Recommended) (на 8 февраля 2007 это был MySQL 5.0), и скачиваете версию для операционной системы Вашего сервера.

Для Windows есть три типа дистибутива

— Windows Essentials (x86) — дистрибутив для Windows 2000 и выше
— Windows (x86) ZIP/Setup.EXE — дистибутив для более ранних версий
— Without installer (unzip in C:) — версия, устанавливаемая простым копированием
При установке с дистибутива следуйте инструкциям инсталлятора; ряд настроек мы всё равно зададим сами в конфигурационнома файле — об этом следующий параграф.

Запускается MySQL под WIndows двумя способами:

Запуском файла mysqld.exe
Запуском службы, созданной при инсталляции (если Вы при инсталляции указали, что нужно создать службу MySQL)

Настройка поддержки кириллицы для MySQL

Читать еще:  База данных access прокат автомобилей

При работе MySQL под Windows Вы можете конфигурировать его параметры с помощью файла мy.ini

Документация (http://dev.mysql.com/doc/refman/5.1/en/mysql-config-wizard-editing.html) утверждает, что его лучше размещать в папке Windows (C:WINDOWS или C:WINNT), но у меня он прекрасно работает в корневой папке сервера MySQL (G:MySQL).

Приведу пример конфигурационного файла мy.ini, позволяющий подерживать кириллицу. В этом файле позволяются комментарии, начинающиеся с # — чем я и воспользуюсь для отметки строк, отвечающих за кириллицу.

Вам придётся изменить в этом файле пути для своего сервера, о чём смотрите комментарии.

Итак, конфигурационный файл мy.ini.

#Конфигурационные параметры для сервера MySQL
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
# Установка кириллицы на сервере
default-character-set=cp1251 #Указание кодировки
character-sets-dir=g:/mysql/share/charsets #Указание пути к папке кодировок (скорректируйте для своего сервера!)

# Конфигурационные параметры для программы резервного копирования
[mysqldump]
quick
max_allowed_packet = 16M
# Установка кириллицы на сервере
default-character-set=cp1251 #Указание кодировки
character-sets-dir=g:/mysql/share/charsets #Указание пути к папке кодировок (скорректируйте для своего сервера!)

# Конфигурационные параметры для программы-клиента mysql.exe
[mysql]
no-auto-rehash
# Установка кириллицы на сервере
default-character-set=cp1251 #Указание кодировки
character-sets-dir=g:/mysql/share/charsets #Указание пути к папке кодировок (скорректируйте для своего сервера!)

[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M

Создать базу данных Вашего приложения

Подключение к базе данных осуществляется от имени пользователя. После инсталляции на сервере присутсвует один пользователь root@localhost с пустым паролем (в ранних версиях был ещё один — root@’%’, но в последних версиях его уже нет. Думаю, по соображениям безопасности). Так что первіе действия Вам придётся осуществить на сервере.

Входите в командную строку Windows (Start/Пуск → Run/Выполнить → cmd), устанавливаете текущим каталогом подкаталог bin каталога MySQL (в моём случае это G:mysqlbin):
F:>G:
G:>cd mysqlbin

и набираете команду подключения к MySQL

Хост и порт приняли значения по умолчанию — соответственно localhost и 3306, пароля у root пока нет (сейчас мы это исправим). И появилось приглашение MySQL вводить команды SQL:
G:mysqlbin>mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2 to server version: 5.0.27-community

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

Первое, что мы проделаем — изменим пароль root: это очевидное требование безопасности.

mysql> update mysql.user set password=Password(‘ВашПароль’) where user=’root’ and host=’localhost’;
Query OK, 0 rows affected (0.06 sec)
Rows matched: 1 Changed: 0 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.08 sec)

Пароль изменён. Но наш сеанс идёт ещё под старым паролем. Прервём наш сеанс и зайдём уже с новым паролем.

G:mysqlbin>mysql -uroot -p
Enter password: *********

Если мы нигде не ошиблись — мы снова видим приглашение MySQL и начинаем работу. Предполагается, что приложение работает в локальной сети, IP-адреса в которой начинаются с 192.168 (в противном случае надо скорректировать нижеследующую инструкцию grant).

mysql> /*создадим пользователя, под которыми будет заходить приложение MS Access */
mysql> grant all privileges on ИмяБазыДанных.* to ‘логин’@’192.168%’ identified by ‘пароль’;
Query OK, 0 rows affected (0.03 sec)

mysql> /*Создадим базу данных нашего приложения*/
mysql> create database ИмяБазыДанных;
Query OK, 1 row affected (0.00 sec)

mysql> /*Создаём таблицы*/
mysql>

Создавать таблицы в командной строке MySQL слишком утомительно. Поэтому Вам лучше выбрать один из двух оптимальных путей.

Если у Вас есть база данных в mdb-файле, воспользуйтесь инструкциями флеш-ролика по адресу http://www.mysql.com/products/tools/migration-toolkit/tutorials/AccessMigrationTutorial.html
Если Вы создаёте базу данных с нуля, Вам лучше в текстовом файле перечислить инструкции create table для вновь создаваемых таблиц. Синтаксис инструкции create table изложен по адресу http://dev.mysql.com/doc/refman/4.1/en/create-table.html, надеюсь, Вы разберётесь в нём самостоятельно. Затем запускаете в командной строке Windows команду

G:mysqlbin>mysql -uroot -p ИмяБазыДанных

Доступ к БД mySQL из Microsoft Access

Материал из 1GbWiki.

Пошаговая иллюстрация процесса представлена для русской версии Microsoft Access 2007. Пробная 60-дневная версия продукта доступна на сайте производителя trymicrosoftoffice.com

Обращаем внимание, на необходимость воздержаться от работы описанным ниже способом с таблицами большого объёма — это может привести к неоправданной нагрузке на сервер хостинга и отключению БД службой поддержки.

[править] Общий вид

Microsoft Access умеет подключаться к внешним источникам данных через ODBC, что бы соедениться с mySQL необходимо установить ODBC-коннектор (драйвер) mySQL и указать его в параметрах соедининя для нового источника данных.

[править] Инструкция

1. Вам потребуется установить mySQL ODBC-коннектор, взять его можно с сайта производителя mySQL тут — http://dev.mysql.com/downloads/connector/odbc/3.51.html. Устанавливать какие-нибудь специфические параметры при установке не требуется, можно установить с параметрами по умолчанию.

2. В группе «Импорт» раздела ленты «Внешние данные» программы Access 2007 выберите пункт «Дополнительно» и «База данных ODBC».

3. Выберите вариант, в котором вы будете работать. Первый пункт позволит сделать копию баз данных mySQL в проекте Access, второй пункт (выбран на картинке) позволит вам вносить изменения в БД mySQL из Access.

4. Далее вам будет показан диалог выбора источника данных. Этот диалог не является частью программ Microsoft Office, но частью Windows. Нажмите кнопку «New» — создать новый источник данных ODBC.

5. Выберите в списке ODBC-драйвер mySQL и нажмите кнопку «Advanced» («Дополнительно»).

6. Вам нужно вставить строку соединения с дополнительными параметрами. Параметры базы данных (логин, пароль и т.п.) возьмите со страницы «пароли на ресурсы» личного кабинета, пример строки соединения возьмите из базы знаний хостинга — mySQL из .NET/ASP (ODBC клиент). Для корректной работы с русским языком бязательно добавьте параметр определяющий язык строковых переменных, например stmt=SET NAMES ‘cp1251’. Получившееся сочитание данных может представлять собой как одну строку (длинную) так и несколько строк разделённых символом ; (как на картинке). После формирования строки соединения нажмите Ok и Next («Дальше»). В ходе работы мастера вас могут несколько раз спрашивать пароль к БД в диалоге драйвера mySQL — вводите пароль и нажимайте «Ok», дополнительные параметры не указывайте.

Читать еще:  Практические задания по базам данных access

7. Введите имя создаваемого вами соединения. Вы можете использовать любое произвольное имя.

8. Выберите созданное вами соединение и нажмите кнопку «Ok»

9. Вам будет предложено ввести пароль к БД. Введите пароль и нажмите «Ok». Не смущайтесь, что вас спрашивают пароль несмотря на то, что вы его уже, может быть, вводили — это нормально. Дополнительные параметры в этом окне лучше не изменять.

10. Выберите таблицы, с которыми вы хотите работать.

11. Всё, работа по соединению Access и mySQL завершена. Вы можете открыть таблицы представленные в поле «Все таблицы» приложения и .

12. . начать работать непосредственно с данными.

Использование MS Access для импорта из mysql

Я новичок, чем «Новичок», поэтому я уверен, что большинство из нас будет смеяться над моими вопросами. Мне удалось установить Ubuntu 16, Mysql, PHPMyadmin, MySql Workbench и несколько других приложений с помощью всей информации через поисковые запросы. В основном моя большая проблема заключается в том, что я не могу получить доступ к подключению к базе данных Mysql. Вот некоторые из результатов, когда я проверяю вещи.

Попытка получить внешние данные в Access в системе Windows 10. Я выбираю с помощью проверки подлинности SQL Server и вводим идентификатор входа и amp; PW (я уже создал пользователя для Mysql)

Было больше, и когда я проверил сеть, мне сказали изменить /etc/mysql/my.cnf . Также сказал:

Я могу заменить ‘myuser’@’localhost’ для моего фактического имени пользователя? и как насчет ‘mypass’ ?

1 ответ

Вам нужно настроить пользователя для удаленного доступа. Это позволит вам подключиться к вашей базе данных с помощью любого клиента, включая Microsoft Access.

Сначала включите удаленный доступ к вашей базе данных, отредактировав файл конфигурации сервера mysql. Вы найдете это в /etc/mysql/mysql.conf.d/mysqld.conf

Посмотрите эту ссылку и убедитесь, что она закомментирована или удалите эту строку:

Если вы внесли изменения в файл, обязательно перезапустите сервер mysql с помощью:

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

Обратитесь к паролю с паролем root и продолжайте:

Переменные этой команды: mydatabase , myuser и mypass .

Команда создаст пользователя, если он не существует, и назначьте пароль «mypass» или что бы вы ни разместили в этом поле для пользователя. Если пользователь уже существует, он просто сделает пароль «mypass» для этого пользователя.

Вы можете протестировать соединение, выполнив его из commanline с этого компьютера или с любого компьютера.

Когда вы нажмете ENTER , он предложит вам ввести пароль и подключить вас к серверу, если учетные данные верны. Затем вы можете запустить это для загрузки базы данных:

Тест командной строки — это то, что клиентское приложение (в данном случае, Microsoft Access) будет выполнять автоматически. Когда вы настраиваете клиент, Microsoft Access (или любой другой графический пользовательский интерфейс ), он попросит вас об этом:

  • хост (который вы указываете с именем хоста или ipaddress)
  • базы данных
  • идентификатор пользователя
  • пароль

Команда создаст пользователя, если он не существует, и назначьте пароль «mypass» или что бы вы ни разместили в этом поле для пользователя. Если пользователь уже существует, он просто сделает пароль «mypass» для этого пользователя.

Вы можете протестировать соединение, выполнив его из commanline с этого компьютера или с любого компьютера.

Когда вы нажмете ENTER , он предложит вам ввести пароль и подключить вас к серверу, если учетные данные верны. Затем вы можете запустить это для загрузки базы данных:

Тест командной строки — это то, что клиентское приложение (в данном случае, Microsoft Access) будет выполнять автоматически. Когда вы настраиваете клиент, Microsoft Access (или любой другой графический пользовательский интерфейс ), он попросит вас об этом:

  • хост (который вы указываете с именем хоста или ipaddress)
  • базы данных
  • идентификатор пользователя
  • пароль

Порт mysql по умолчанию 3306 . Ваш клиент предоставит вам возможность предоставить порт, если вы настроили ваш пульт, чтобы быть другим. Вам нужно будет настроить маршрутизатор для перенаправления портов на ваш сервер-сервер mysql. Это будет порт 3306 или другой, если вы настроите свой сервер по-разному.

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

Измените 3306 , чтобы соответствовать настройке вашего сервера, если вы изменили его по умолчанию.

Что касается вашего вопроса: «Я заменяю« myuser »@« localhost », myuser может по вашему имени или любому имени, которое вы решите дать. Это зависит от вас, если вы хотите, чтобы это было одно имя.

Перенос базы данных Microsoft Office Access в Microsoft SQL Server

Со временем в ходе может потребоваться перенос файл-серверной базы данных Microsoft Office Access (Access) в формат клиент-серверной СУБД. Обычно для этой цели используется ODBC. Однако для переноса в Microsoft SQL Server (MS SQL) СУБД Access и MS SQL имеют удобные специализированные средства.

Всего существует три способа переноса базы данных из Access в MS SQL. Рассмотрим их все на примере простой базы данных состоящей из двух таблиц и одного запроса.

Перенос базы данных средствами Access («Мастер преобразования в формат SQL Server»)

Для того чтобы начать перенос нужно нажать кнопку «SQL Server» в области «Перемещение данных» вкладки «Работа с базами данных».

В открывшемся окне нужно выбрать, куда будут перенесены данные.

Возможны два варианта:

  1. Экспорт в уже существующую базу данных MS SQL;
  2. Создание новой базы данных (по умолчанию).

Задаём имя сервера, на который будем переносить базу данных, имя создаваемой базы данных и указываем имя пользователя и пароль для подключения.

Далее предстоит выбрать таблицы, которые будут перенесены.

Для выбора одной таблицы служит кнопка «>», а для выбора всех таблиц кнопка «>>». Для того чтобы отказаться от переноса предназначены кнопки « «Импорт данных».

Откроется «Мастер импорта и экспорта данных»

После нажатия кнопки «Далее» необходимо выбрать источник, из которого будут импортированы данные.

В раскрывающемся списке «Источник данных» необходимо выбрать «.Net Framework Data Provider for Odbc» (если не выбрано по умолчанию) и в строке Dsn в таблице указать имя созданного выше источника данных для базы данных Access. Строка подключения («Connection String») будет сформирована автоматически.

Далее необходимо указать в какую базу данных, какого экземпляра MS SQL импорт. Для этого после нажатия кнопки «Далее» выбираем в раскрывающемся списке «Назначение» либо «Microsoft SQL Server Native Client» (как показано на скриншоте ниже) либо «Microsoft OLE DB Provider for SQL Server», указываем нужную базу данных имя пользователя и пароль для подключения.

Далее будет показано окно, в котором нужно указать способ импорта. Для импорта из Access лучше оставить значение по умолчанию.

Затем нужно выбрать таблицы, которые будут импортированы. Как уже было отмечено выше, при использовании ODBC импорт запросов Accessне доступен. Поэтому, в отличие от предыдущего скриншота со списком объектов для импорта в этом списке будут исключительно таблицы.

С помощью флажков можно выбрать как все таблицы сразу (что и сделано в этом примере), так и некоторые из них в отдельности.

После нажатия на кнопку далее будет показано окно предупреждением. Его можно просто проигнорировать и нажать кнопку «Далее».

Затем будет показано окно с окончательными настройками процесса импорта. Оставим все значения по умолчанию.

Далее отобразится завершающее окно с общей итоговой сводкой информации о предстоящем процессе импорта.

После нажатия на кнопку «Готово» процесс импорта будет выполнен. Если всё сделано правильно и импорт выполнен успешно, окно с информацией о выполнении импорта не будет содержать ошибок (см. скриншот ниже).

Для завершения работы мастера достаточно нажать кнопку «Закрыть».

Результат можно увидеть SQL Server Management Studio.

Перенос базы данных со стороны средствами ODBC

Этот способ является универсальным для экспорта данных из Access в любую другую СУБД. Достаточно только чтобы она поддерживала работу с ODBC.

Пример такого экспорта уже был ранее рассмотрен в статье «Работа с базой данных SQLite средствами Access»

Для MS SQL данный способ переноса базы данных из Access не желателен, так как экспортируются только таблицы с данными, а запросы экспортируются только в виде обычных таблиц.

Однако такая возможность переноса до сих пор имеется (версия 2014 не стала исключением). Поэтому, рассмотрим и её тоже.

Для начала создадим источник данных для работы с MS SQL (пусть это будет пользовательский DSN).

Укажем драйвер для источника.

После этого будет запущен процесс его создания и настройки.

Зададим имя источника данных и укажем имя экземпляра MS SQL, к которому требуется выполнить подключение.

Далее введём имя пользователя и пароль для подключения.

После этого укажем базу данных, в которую планируется перенести таблицу или запрос. Перенос с помощью ODBC можно выполнить только в уже существующую базу данных. Поэтому, если данные требуется перенести в новую базу данных, её необходимо предварительно создать.

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

После нажатия кнопки «Готово» будет показано окно с итоговой информацией о создаваемом источнике данных.

Для того чтобы источник данных был окончательно создан, достаточно нажать кнопку «Ok». Но, лучше предварительно проверить его работоспособность, нажав на кнопку «Проверить источник данных».

Если всё сделано правильно, будет показано сообщение об успешной проверке.

Теперь, когда есть источник данных, можно приступать непосредственно к процессу переноса.В качестве примера экспортируем из базы данных единственный запрос «Contacts Запрос».

Для этого выделим его мышью и нажмём на кнопку «Дополнительно» в области «Экспорт» вкладки «Внешние данные». В раскрывшемся меню выберем «База данных ODBC».

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

В данном случае оставлено исходное значение.

После нажатия кнопки «Ok» необходимо выбрать созданный источник данных.

Затем ввести имя пользователя и пароль для подключения к серверу.

После нажатия кнопки «Ok» экспорт будет выполнен.

Однако, как уже говорилось выше, результат экспорта в случае запроса не корректный.

Вместо представления «Contacts Запрос» в базе данных MS SQL была создана одноимённая таблица.

Кроме того, даже если экспортировать только таблицы, после экспорта необходимо выполнить множество дополнительных действий (повторное создание связей и т.д.). Поэтому, описанный способ переноса баз данных из Access в MS SQL уже практически не применяется.

Вместо него настоятельно рекомендуется использовать либо встроенный «Мастер преобразования в формат SQL Server» либо импортировать базу данных Access со стороны MS SQL его средствами.

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector