Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
MDmitry_
81 / 49 / 14
Регистрация: 01.10.2010
Сообщений: 492
1

Подключение к другому компьютеру по локальной сети через сервер MySQL и NET Connector

10.07.2012, 23:44. Просмотров 3569. Ответов 15
Метки нет (Все метки)

Доброго времени суток.
Использую С#, сервер MySQL и библиотеку NET Connector.
Комп 1. Ip 192.168.1.2 - клиент.
Комп 2. Ip 192.168.1.1 - сервер (на нём база)
Подключаюсь с клиента так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
MySqlConnection mysqlСonnection;
 
        public MySQLBaseClass()
        {
            // Создание соединения
            // База даднных
            string database = "sourcedatabase";
            //Имя пользователя MySQL
            string mysqlUser = "root";
            //Пароль пользователя MySQL     
            string mysqlPassword = "";
            //Хост на котором расположен MySQL сервер          
            string mysqlHost = "192.168.1.1";     
            // Генерация строки соединения
            string сonnect = "Database=" + database +
                             ";Data Source=" + mysqlHost +
                             ";User Id=" + mysqlUser +
                             ";Password=" + mysqlPassword +
                             ";Charset=cp1251";
            // Создание объекта соединения 
            mysqlСonnection = new MySqlConnection(сonnect);
        }
на строке
C#
1
mysql_connection.Open();
Ссылка на объект не указывает на экземпляр объекта.

Что ещё нужно и где изменить/прописать?

P.S. компы пингуются

Добавлено через 7 минут
текущий пользователь root@localhost
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2012, 23:44
Ответы с готовыми решениями:

Нет подключения к локальному серверу, подключенному по локальной сети mySQL connector
Программа не подключается к базе данных по сети. Дома стоит Denwer и...

Подключение mysql connector NET 6.7.4 к MS 2012
Пытаюсь подключить MySql-connector .Net к VS 2012 ulti. Создал ссылку на...

Подключение к другому компьютеру
Вот возникает вопрос: Допустим у сервера вай-фай роутер, а я подключаюсь к...

MySql Connector для .NET Framework 2?
Добрый вечер. Существует mysql connector для 2 .NET? На офф сайте есть версия...

MySql Net Connector утечка памяти
В своей программе использую следующий код: public static class ParserHelper ...

15
gitarillo
729 / 529 / 46
Регистрация: 17.06.2010
Сообщений: 1,033
Записей в блоге: 1
11.07.2012, 09:24 2
mysqlСonnection и mysql_connection разные переменные.
0
MDmitry_
81 / 49 / 14
Регистрация: 01.10.2010
Сообщений: 492
11.07.2012, 13:53  [ТС] 3
пардон, опечатка

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
MySqlConnection mysqlСonnection;
 
        public MySQLBaseClass()
        {
            // Создание соединения
            // База даднных
            string database = "sourcedatabase";
            //Имя пользователя MySQL
            string mysqlUser = "root";
            //Пароль пользователя MySQL     
            string mysqlPassword = "";
            //Хост на котором расположен MySQL сервер          
            string mysqlHost = "192.168.1.1";     
            // Генерация строки соединения
            string сonnect = "Database=" + database +
                             ";Data Source=" + mysqlHost +
                             ";User Id=" + mysqlUser +
                             ";Password=" + mysqlPassword +
                             ";Charset=cp1251";
            // Создание объекта соединения 
            mysqlСonnection = new MySqlConnection(сonnect);
        }
C#
1
mySqlConnection.Open()
0
gitarillo
729 / 529 / 46
Регистрация: 17.06.2010
Сообщений: 1,033
Записей в блоге: 1
11.07.2012, 13:59 4
MDmitry_, и опять жею регистр некоторых букв разный
mySqlConnection
mysqlСonnection
0
MDmitry_
81 / 49 / 14
Регистрация: 01.10.2010
Сообщений: 492
11.07.2012, 17:39  [ТС] 5
Цитата Сообщение от gitarillo Посмотреть сообщение
MDmitry_, и опять жею регистр некоторых букв разный
mySqlConnection
mysqlСonnection
да ёлки-палки. Опять чтоли опечатался. Не суть. Проблема не в именовании переменной - 100%.
Когда в

C#
1
2
//Хост на котором расположен MySQL сервер          
string mysqlHost = "localhost";
то всё работает нормально.

если же
C#
1
2
//Хост на котором расположен MySQL сервер          
string mysqlHost = "192.168.1.1";
то вот такая ерунда (в первом случае было два класса (один устаревший) для работы с MySQL, открытие соединения я по ходу из второго взял, во втором случае - простая опечатка, не в именовании переменной дело - 100%)
0
turbanoff
Эксперт Java
4024 / 3759 / 742
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
11.07.2012, 17:41 6
Цитата Сообщение от MDmitry_ Посмотреть сообщение
Ссылка на объект не указывает на экземпляр объекта.
Это значит переменная не инициализирована (равна null). Ищите ошибку, дело не в строке подключения.
0
gitarillo
729 / 529 / 46
Регистрация: 17.06.2010
Сообщений: 1,033
Записей в блоге: 1
11.07.2012, 17:41 7
MDmitry_, Если бы дело было в сервере (проблемы подключения) то исключение было бы никак ни ссылка на null, а Unable connect to any MySql host. Но поскольку у тебя исключение именно с ссылкой на null, смотри внимательно в код и ищи ошибку.
0
MDmitry_
81 / 49 / 14
Регистрация: 01.10.2010
Сообщений: 492
11.07.2012, 19:42  [ТС] 8
Цитата Сообщение от gitarillo Посмотреть сообщение
MDmitry_, Если бы дело было в сервере (проблемы подключения) то исключение было бы никак ни ссылка на null, а Unable connect to any MySql host. Но поскольку у тебя исключение именно с ссылкой на null, смотри внимательно в код и ищи ошибку.
Цитата Сообщение от turbanoff Посмотреть сообщение
Это значит переменная не инициализирована (равна null). Ищите ошибку, дело не в строке подключения.
Цитата Сообщение от MDmitry_ Посмотреть сообщение
string mysqlHost = "localhost";
а c этим тогда как работает? Забивает на именование переменных?
0
turbanoff
Эксперт Java
4024 / 3759 / 742
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
11.07.2012, 19:55 9
Цитата Сообщение от MDmitry_ Посмотреть сообщение
а c этим тогда как работает? Забивает на именование переменных?
по приведенному коду, невозможно ответить на ваш вопрос.
0
MDmitry_
81 / 49 / 14
Регистрация: 01.10.2010
Сообщений: 492
11.07.2012, 19:59  [ТС] 10
Проблема решается следующим алгоритмом.
1. Удаляем или комментируем путём # строку bind-address = 127.0.0.1 в файле my.cnf. На сервере
2. На сервере создаём пользователя ИмяПользователя@Ip-адрес. Я создавал пример для root@192.168.1.2 и даём ему какие нужно права
3. Подключаемся с указанием хоста (см. выше)

P.S. господа, если кто-то допустил нубскую ошибку (вроде именования переменной как у меня на форуме, не в коде) не надо смаковать это и зацикливаться, можно обратить внимание на что-то другое, например на корень проблемы
0
turbanoff
Эксперт Java
4024 / 3759 / 742
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
11.07.2012, 20:05 11
мало кода приведено, чтобы о чем-то судить. Откуда взялся файл my.cnf?

PS. NPE просто так не вылетает...
0
MDmitry_
81 / 49 / 14
Регистрация: 01.10.2010
Сообщений: 492
12.07.2012, 08:55  [ТС] 12
my.cnf - файл конфигурации MySQL
0
gitarillo
729 / 529 / 46
Регистрация: 17.06.2010
Сообщений: 1,033
Записей в блоге: 1
12.07.2012, 09:30 13
Цитата Сообщение от MDmitry_ Посмотреть сообщение
1. Удаляем или комментируем путём # строку bind-address = 127.0.0.1 в файле my.cnf. На сервере
А просто нельзя указать доступ к базе со всех хостов?
MDmitry_,

Не по теме:

Вы приводите фрагмент кода, в котором явно указаны разные имена переменной а также указываете тип исключения, который у вас генерируется. Разумеется, первый вывод, который делается отвечающими, что дело именно в ошибках именовании переменных. Вы ведь код копируете, верно? Или что.
И кстати, исключение точно ссылка на null?

0
MDmitry_
81 / 49 / 14
Регистрация: 01.10.2010
Сообщений: 492
13.07.2012, 12:30  [ТС] 14
Цитата Сообщение от gitarillo Посмотреть сообщение
А просто нельзя указать доступ к базе со всех хостов?
как это сделать?
0
gitarillo
729 / 529 / 46
Регистрация: 17.06.2010
Сообщений: 1,033
Записей в блоге: 1
13.07.2012, 12:32 15
в привилегиях напротив пользователя в графе Хост поставить %
0
MDmitry_
81 / 49 / 14
Регистрация: 01.10.2010
Сообщений: 492
13.07.2012, 12:40  [ТС] 16

Не по теме:

Так я же отписал, что при смене адреса хоста на localhost всё работает нормально (что было бы невозможно при неправильном именовании), что ошибься при опубликовании кода на форуме. Но ведь нет, потом всё равно продолжили тыкать носом. Да исключение было объект = null



Добавлено через 2 минуты
Цитата Сообщение от gitarillo Посмотреть сообщение
в привилегиях напротив пользователя в графе Хост поставить %
где это именно ставится (в файле конфигурации)?
0
13.07.2012, 12:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2012, 12:40

ADO.NET & MySQL Connector
Объясните мне пожалуйста подробнее, что такое ADO.NET? В msdn описание...

Подключение к удаленному компьютеру через WMI
вот код, который использую: ConnectionOptions options = new...

Подключение к локальной базе данных MySQL
C# подключение к локальной базе данных mysql. Скачали мы denwer, загрузили...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru