Можно ли использовать access в mysql
Содержание статьи
MS Access- MySQL
MS Access , mdb- — . MySQL. MySQL, 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 ( ), , — ( https://db-maker.narod.ru/contactrus.htm). …
MySQL
, Windows. — (https://dev.mysql.com/doc/refman/4.1/en/installing.html).
https://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
MySQL Windows y.ini
(https://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.
[client]
port= 3306
# 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 # ( !)
server-id= 1
#
[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
[mysqlhotcopy]
interactive-timeout
. root@localhost ( — root@’%’, . , ). .
Windows (Start/ → Run/ → cmd), bin MySQL ( G:mysqlbin):
F:>G:
G:>cd mysqlbin
MySQL
G:mysqlbin>mysql -uroot
— 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.
mysql>
, — root: .
mysql> update mysql.user set password=Password(») where user=’root’ and host=’localhost’;
Query OK, 0 rows affected (0.06 sec)
Rows matched: 1Changed: 0Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.08 sec)
mysql>
. . .
mysql> quit;
Bye
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-, — https://www.mysql.com/products/tools/migration-toolkit/tutorials/AccessMigrationTutorial.html
, create table . create table https://dev.mysql.com/doc/refman/4.1/en/create-table.html, , . Windows
G:mysqlbin>mysql -uroot -p < create table
, ,
ODBC ,
https://dev.mysql.com/downloads/, Connector/ODBC — MySQL ODBC driver, , .. Generally Available (GA) release ( 8 2007 Connector/ODBC 3.51 ), .
, . — .
MS Access 2003 — ODBC
MS Access 2003 ODBC Windows 2000 ( XP , , , ). Jet 4.0 SP8 Windows 2000 Windows ( — MS Access, Windows). , Windows 2000 Jet 4.0 SP8
https://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=1e268b39-533e-48b0-b8d7-1781befde1f8
—
ODBC — . VBA ODBC
ODBC
ODBC- :
DBEngine.RegisterDatabase ODBC, ODBC-, True,
(. https://dev.mysql.com/doc/refman/5.0/en/myodbc-configuration-connection-parameters.html):
user—
server — , MySQL ,
database — .
option — ODBC. . https://dev.mysql.com/doc/refman/5.0/en/myodbc-configuration-connection-parameters.html
port — TCP/IP , , MySQL- localhost.
stmt — SQL-, MySQL. — ( — cp1251), MS Access
password , (user).
socket The Unix socket file or Windows named pipe to connect to if server is localhost.
Dim connect as String
connect=»server=192.168.1.1;user=manager;password=zorro;port=3306;stmt=set names cp1251″
DBEngine.RegisterDatabase «tm», «MySQL ODBC 3.51 Driver», True, connect
stmt: MS Access .
‘
Function Drop_linked_tables() As Boolean
On Error GoTo oblom
Dim TD As TableDef
Dim tableName As String
For Each TD In CurrentDb.TableDefs
If (left(TD.connect, 5) = «ODBC;») Or (left(TD.connect, 10) = «;DATABASE=») Then
tableName = TD.Name
CurrentDb.TableDefs.Delete (tableName)
End If
Next TD
CurrentDb.TableDefs.Refresh
Drop_linked_tables = True
Exit Function
oblom:
Drop_linked_tables = False
End Function
MySQL ODBC
‘ MySQL ODBC
Function StartConnectMySQL(ByVal login As String,ByVal odbcName As String,ByVal db As String) As Boolean
On Error GoTo oblom
Call Drop_linked_tables ‘
Dim newTD As TableDef
Dim ws As Workspace
Set ws = CreateWorkspace(«ws_MySQL», «», «», dbUseODBC)
Dim connect As String
connect = «ODBC;database=» & db & «;DSN=» & odbcName
Dim MySQL As DAO.Connection
Set MySQL = ws.OpenConnection(odbcName, dbDriverComplete, False, connect)
Dim query As String
query = «use » & db
MySQL.Execute (query)
query = «show tables»
Dim rst As DAO.Recordset
Set rst = MySQL.OpenRecordset(query, dbOpenDynaset)
Do While Not rst.EOF
Set newTD = CurrentDb.CreateTableDef(rst(0))
newTD.connect = «ODBC;DSN=» & odbcName & «;database=» & db
newTD.SourceTableName = rst(0)
CurrentDb.TableDefs.Append newTD
rst.MoveNext
Loop
StartConnectMySQL = True
Exit Function
oblom:
StartConnectMySQL = False
End Function
MS Access c MySQL. , : , :
(-)
, :
— view, stored procedures, triggers
—
— WEB-
—
, — …
Источник
Access MySQL / Microsoft Access
Compositum : — | MySQL 5.0. , . Access 2003 SP2 , MySQL 5.0 MySQL 5.1. : ____________________________________________________________ .. Windows XP SP2. Access 2003 SP2. , … . |
George-III : |
Access, ODBC, . , Open Database Connectivity Interface, » » ( )
?
, Karfagen , . . . . |
Compositum : — | , — . . , , , : |
Compositum : — | , . :
, . |
Compositum : — | — — . — ODBC ( ). : ____________________________________________________________ . — 0Kb |
Compositum : — | … … : : , , , , ? , ? . — 0Kb |
— : | ! . — 0Kb |
Compositum : — | : ____________________________________________________________ . — 0Kb |
Compositum : — | : ____________________________________________________________ . — 0Kb |
Compositum : — | :
… |
Compositum : — | … ? , . … ____________________________________________________________ .. Windows XP SP2. Access 2003 2. , … . |
— : | test MySQL ? |
ruprext : 5519’N — 5027’E |
ruprext : 5519’N — 5027’E | ODBC , .. |
ruprext : 5519’N — 5027’E | ? ? |
Compositum : — | . … ____________________________________________________________ .. Windows XP SP2. Access 2003 2. , … . |
alexmsp : | , . . . — 0Kb |
ruprext : 5519’N — 5027’E | , , . — 0Kb |
Compositum : — | , . , . . … — ??? .. |
George-III : |
localhost 127.0.0.1? |
Compositum : — |
|
ruprext : 5519’N — 5027’E | , , |
Источник
Проблемы с использованием MS Access в качестве интерфейса к базе данных MySQL?
два пользователя хотели использовать одну и ту же базу данных, первоначально написанную в MS Access, без конфликта друг с другом по одному MDB-файлу.
я переместил таблицы из простой базы данных MS Access в MySQL, используя его Миграция Инструментарий (который работает хорошо, кстати) и настроить доступ к ссылке на эти таблицы через ODBC.
до сих пор я столкнулся со следующим:
- вы не можете вставлять/обновлять / удалять строки в таблице без первичный ключ (неудивительно).
- поля AutoNumber в MS Access должны быть первичным ключом, или они просто закончатся как целочисленные столбцы в MySQL (natch, почему бы не быть PK?)
- таблицы были перенесены в тип таблицы InnoDB MySQL, но отношения доступа не стали ограничениями внешнего ключа MySQL.
Как только база данных используется, могу ли я ожидать каких-либо других проблем? Особенно, когда оба пользователя работают в одной таблице?
7 ответов
У меня было приложение, которое работало аналогично: интерфейс MS Access к бэкэнду MySQL. Это была такая огромная боль, что вместо этого я написал интерфейс Win32. С самого начала я столкнулся со следующими проблемами:—1—>
- разработка ссылки ODBC, похоже, давно прекратилась. Существуют различные различные версии, плавающие вокруг — — — очень запутанные. Ссылка ODBC не поддерживает Unicode / UTF8, и я помню, что были и другие проблемы с ним (хотя некоторые могут быть преодолены путем тщательной настройки).
- вы, вероятно, хотите вручную настроить схему БД, чтобы сделать ее совместимой с MS Access. Я вижу, вы уже узнали о необходимых суррогатных ключах (т. е. int primary keys): -)
- вы должны иметь в виду, что вам может потребоваться использовать сквозные запросы для выполнения более сложных SQL-манипуляций с базой данных MySQL.
- будьте осторожны с использованием большого количества VBA, так как это имеет тенденцию повреждать ваш файл frontend. Регулярное сжатие базы данных (используя главное меню, Инструменты / утилиты базы данных / сжатие и восстановление или что-то в этом роде — — — я использую голландскую версию) и создание много резервные копии необходимо.
- Access имеет тенденцию вызывать много сетевого трафика. Очень много. Я не смог найти решение для этого. Использование сетевого монитора рекомендуется, если вы хотите следить за этим!
- Access настаивает на сохранении логических значений как 0 / -1. ПО МОЕМУ, 0 / +1 имеет больше смысла, и я считаю, что это способ по умолчанию делать вещи в MySQL. Не огромная проблема, но если ваши флажки не работают, вы обязательно должны проверить это.
одной из возможных альтернатив было бы поместить бэкэнд (с данными) на общий диск. Я помню, что это хорошо документировано, также в справке. Возможно, вы захотите взглянуть на несколько общих советов по разделение на frontend и backend и код, который автоматически повторное подключение к бэкэнду при запуске; я также могу отправить вам еще несколько примеров кода или опубликовать его здесь.
в противном случае вы также можете рассмотреть MS SQL. У меня нет опыта в этом, но я предполагаю, что он работает вместе с MS Access намного лучше!
Я знаю, что эта тема не слишком свежая, но просто некоторые дополнительные объяснения:
Если вы хотите эффективно использовать MS Access, особенно с большими многопользовательскими базами данных, сделайте следующее:
разделите MDB на файлы frontend application и backend (только данные) — тогда у вас будет два отдельных файла MDB.
перенесите все таблицы с данными и структурой во внешнюю базу данных. Это может быть: MySQL (работает очень ну нет размер базы данных ограничения, требует немного больше навыков, так как это не МС-Технологии, но это хороший выбор во многих случаях — более того, вы можете масштабировать бэкенд с большим объемом оперативной памяти и дополнительных ЦП, так что все зависит от ваших потребностей и возможностей оборудования); Оракул (хватит ли у тебя денег или какая-то корпоративная лицензия) или Oracle версии 10G XE (в некоторых случаях, если это не проблема, что размер базы данных ограничен 4 ГБ и он всегда будет использовать 1 ГБ оперативной памяти и 1 Процессор), МС SQL сервер 2008 (это отличная пара, чтобы иметь интерфейс MS Access и сервер MS SQL Server во всех случаях, но вы должны заплатить за лицензию! — преимущества: тесная интеграция, обе технологии формируют одного и того же поставщика; MS SQL Server очень легко поддерживать эффективный в то же время) или Express edition (та же история, что и с Oracle XE — почти те же ограничения).
повторно свяжите интерфейс MS Access с базой данных бэкэнда. Если вы выбрали MS SQL Server для бэкэнда, то это будет так же просто, как использовать мастер из MS Access. Для MySQL — вы должны использовать драйверы ODBC (это просто и работает очень хорошо). Для Oracle — пожалуйста, не используйте драйверы ODBC от Microsoft. Они от Oracle сделают свою работу намного лучше (вы можете сравнить время, необходимое для выполнения SQL-запроса от MS Access до Oracle через драйверы Oracle ODBC и MS Oracle ODBC). На этом этапе у вас будет твердая база данных и полностью функциональный файл MS Access frontend — MDB.
компиляции ваш интерфейс MDB для MDE-это даст вам много скорости. Кроме того, это единственная разумная форма распространения приложения MS Access для конечных пользователей.
для ежедневной работы-используйте файл MDE с интерфейсом MS Access. Для дальнейшей разработки интерфейса MS Access используйте MDB-файл.
Не используйте плохо написанные компоненты ActiveX для расширения возможностей интерфейса MS Access. Лучше напишите их сами или купите нужные те.
Не верьте в мифы, что есть много проблем с MS Access — это отличный продукт, который может помочь в майских случаях. Проблема в том, что многие люди предполагают, что это игрушка или что MS Access в целом прост. Обычно они генерируют много ошибок и проблем сами по себе, а также их отсутствие знаний и опыта. Чтобы быть успешным С MS Access, важно понять этот инструмент — это то же самое правило, как и с любой другой технологией в строю.
Я могу сказать вам, что я использую довольно продвинутый MS Access, обращенный к MySQL backend, и я очень доволен (как разработчик, который поддерживает это приложение). Мои друзья, пользователи также удовлетворены, поскольку они чувствуют себя очень комфортно с GUI (frontend), скоростью (MySQL), у них нет никаких проблем с блокировкой записей или производительностью базы данных.
кроме того, важно много читать о передовой практике и опыте других людей. Я можно сказать, что во многих случаях MS Access является хорошим решением. Я знаю много преданных, на заказ системы, которая началась как эксперимент в форме частного МС доступ к базе данных (MDB файл), а затем эволюционировали: разбиты МС доступ (МРЗ — интерфейс, МДБ — backend) и наконец: МС доступ к пользовательской части (мде) и «серьезной» базы данных (в основном мѕ SQL Server и MySQL). Также важно, что вы всегда можете использовать свое решение MS Access в качестве рабочего прототипа — вы готовы использовать бэкэнд в своем база данных (MySQL-предположим) и вы можете переписать frontend на технологию по вашему выбору (веб-решение? может быть, настольное приложение C# — то, что вам требуется!).
надеюсь, я помог некоторым из вас, учитывая работу с MS Access.
с уважением,
Wawrzyn
https://dcserwis.pl
16
автор: 2 revsPawel Wawrzyniak
Гарет Симпсон заявил:
Если это только два пользователя, то доступ к
должно сделать как раз отлично если вы кладете
.mdb на общем диске.
Э, нет. Нет многопользовательского приложения доступа, для которого у каждого пользователя не должно быть выделенной копии интерфейса. Это означает, что каждый пользователь должен иметь MDB на своей рабочей станции. Почему? Поскольку объекты в интерфейсах не разделяют хорошо (не так хорошо, как Таблицы данных Jet, хотя их нет в этом случае использование MySQL в качестве бэкэнда).
Я считаю, что рекомендуемый максимум
одновременные пользователи для доступа — 5, но
иногда я отталкиваюсь от этого.
и никогда не отклеиваются.
нет, это совершенно неправильно. Теоретический предел для пользователей MDB составляет 255. Это не реалистично, конечно, как только вы достигнете около 20 пользователей, вы должны тщательно запрограммировать приложение Access, чтобы хорошо работать (хотя то, что вам нужно сделать в приложении Access-to-Jet, — это то же самое, что вы сделали бы, чтобы сделать любое приложение базы данных сервера эффективным, например, получение наименьших используемых наборов данных).
в этом случае, поскольку каждый пользователь должен иметь индивидуальную копию интерфейсного MDB, многопользовательские ограничения доступа / Jet просто не актуальны вообще.
Я знаю, что это не отвечает на ваш вопрос напрямую, но, возможно, стоит проверить средство миграции SQL Server 2005 для доступа. Я никогда не использовал этот инструмент, но, возможно, стоит использовать с SQL Server 2005 Express Edition, чтобы увидеть, есть ли те же проблемы, что и с MySQL
Не забудьте поставить штамп типа время/дата на каждой записи. иногда ms access подумает: «другой пользователь изменил или удалил запись» и не позволит вам внести изменения! Я понял это на собственном горьком опыте.
В общем, это зависит 🙂
У меня не было много проблем, когда сторона приложения просто обновляла данные через формы. Вы можете получить предупреждения / ошибки, когда одна и та же строка была обновлена более чем одним пользователем; но Access, похоже, постоянно обновляет свои наборы живых записей все время.
проблемы могут возникнуть, если Алиса уже работает с записью 365, и Боб обновляет ее, а затем Алиса пытается обновить ее своими изменениями. Насколько я помню, Алиса получит загадочное сообщение об ошибке. Пользователям будет проще, если вы поймаете эти ошибки и, по крайней мере, дадите им более дружелюбное сообщение об ошибке.
У меня было больше проблем, когда я редактировал записи в коде VB через наборы записей, особенно в сочетании с редактированием тех же данных в формах. Это не обязательно проблема нескольких пользователей; однако, у вас почти такая же ситуация, потому что у вас есть один пользователь с несколькими подключениями к тем же данным.
Если это только два пользователя, то доступ должен делать все в порядке ,если вы положили.mdb на общем диске.
вы пробовали это сначала, а не просто предполагаете, что это будет проблемой.
Я считаю, что рекомендуемые максимальные одновременные пользователи для доступа — 5, но иногда я толкал его мимо этого и никогда не отклеивался.
с другой стороны, я однажды использовал доступ в качестве интерфейса к MySQL в среде одного пользователя (me). Это было на редкость неприятно. опыт, я не могу себе представить, что это станет лучше с двумя пользователями.
Источник