Не пойму при чём здесь Visual Basic, подробнее опиши что хочешь сделать, и полный код иначе понять сложно. Хочу сделать регистрацию в программе TextBox2.Text - Логин TextBox3.Text - Пароль TextBox5.Text & "@" & TextBox6.Text - Майл База - MyBase Вот код: Dim DBTableName As String = "MEMB_INFO" Dim cn As New OleDb.OleDbConnection("Data Source=ИП_СКРЫТ,1433;Provider=SQLOLEDB;Initial Catalog=MyBase;User ID=sa;Password=ПАРОЛЬ_СКРЫТ;") Dim cmd As New OleDb.OleDbCommand("INSERT INTO MEMB_INFO (memb_guid, memb___id, memb__pwd, memb_name, sno__numb, mail_addr, mail_chek, bloc_code, ctl1_code, vip_free, member, ZY, jf, rcb, vip, Expired, sms_t, last_ip, last_s, bloc_date, SCFIsVip, SCFVipMoney, SCFVipDays, SCFWareVipCount)" & vbNewLine & "VALUES (:vcustid, '" & TextBox2.Text & "', '" & TextBox3.Text & "', 'User', '123456789012345678', '" & TextBox5.Text & "@" & TextBox6.Text & "', '0', '0', '1', '0', '0', '0', '0', '0', '0', '" & DateString & " " & TimeOfDay & "', '0', '0', '0', '" & DateString & " " & TimeOfDay & "', '0', '0', '0', '0');", cn) Dim da As New OleDb.OleDbDataAdapter(cmd) Dim tbl As New DataTable da.Fill(tbl) tbl.Dispose() da.Dispose() cmd.Dispose() cn.Dispose()
после VALUES( надо не двоеточие ставить, а скорее всего переменную и выносить её за строку. Пример можно, я в SQL никто =( Мне нужно сделать очередность Ну там 1 строка ID 30 2 строка ID 31 и.т.д...
такс теперь будем снова флудить и тп я те бан дам
У меня проблема с базами MSSQL INSERT INTO MEMB_INFO (memb_guid, memb___id, memb__pwd, memb_name, sno__numb, mail_addr, mail_chek, bloc_code, ctl1_code, vip_free, member, ZY, jf, rcb, vip, Expired, sms_t, last_ip, last_s, bloc_date, SCFIsVip, SCFVipMoney, SCFVipDays, SCFWareVipCount) VALUES (:vcustid, 'Логин', 'Пароль', 'User', '123456789012345678', '[email protected]', '0', '0', '1', '0', '0', '0', '0', '0', '0', 'Дата', '0', '0', '0', '0', 'Дата', '0', '0', '0', '0'); При попытке выполнения этого кода в Visual Basic (Ну конечно я все делал для правильной работы) Ответ от SQL был таким: Line 2: Incorrect syntax near ':'. Тесть ругается на двоеточие, но двоеточие нужна для работы счетчика кто знает что делать?
Представляю вам свой скрипт, который дает голд за переход по ссылке. Установка: запустите Query Analyzer, выберете базу dbo, откройте файл openuser.sql и нажмине F5 ; Отредактируйте файл настройки соединения с сервером в файле kg.php ; Скопируйте login.php и kg.php на сервер (можно туда же, где и рега); Укажите на сайте ссылку на login.php. Данный скрипт будет давать 100 голда, перерыв между получения голда 12 часов. Для того, чтобы изменить кол-во даваемого голда, отредактируйте строку в файле kg.php exec usecash $giveTo,1,0,1,0,10000,1,@error"; Для того, чтобы изменить таймаут, отредактируйте строку в файле kg.php $timestamp = mktime($hours + 12,$minutes,$seconds,$month,$day,$year); Для того, чтобы изменить ссылку на голосование, измените строку в файле kg.php <meta http-equiv="Refresh" content="0;URL=http://top.roleplay.ru/5405"> http://morze.ucoz.ru/KG.zip Права принадлежат MorzE ©[/c]
[img] Пример Данная форма регистрации спокойно подойдет для ucoz.ru всё будет при этом работать Опятьже не забываем про строчку в файле index.php: <form action="http://твой_ip/processor.php" method="post"> За место твой_ip встовляем твой ИП <!--pd_0--> Хотябы в знак уважения не удаляйте копирайты! Только для mmorpg-devs.ru p.s. Скоро усовершенствую
[img] Разорхивируете iWeb в папку jakarta-tomcat-5.5.9 (папку создадите сами) Потом в PWServer.conf в конце пропишете строчку: cofs0="H:\coLinux\pwserver\Meneger File" И потом в папке H:\coLinux\pwserver\ Создадите папку Meneger File И в эту папку уже кинете ту папку с разорхивированным iWeb'om ( jakarta-tomcat-5.5.9) Потом заходите в mc - и там в mnt будет та самая папка с Iweb ( jakarta-tomcat-5.5.9) Нажимаете "tab" ищете папку "opt" ) нажимаете опять "tab" и потом F5(копировать) или F6(перенести) После идёте в start.sh там в начале будет: echo "=== IWEB AND ROLE MANAGEMENT ===" /usr/local/jakarta-tomcat-5.5.9/bin/startup.sh sleep 5 echo "=== DONE! ===" echo "" Изменяе на: echo "=== IWEB AND ROLE MANAGEMENT ===" /opt/jakarta-tomcat-5.5.9/bin/startup.sh sleep 5 echo "=== DONE! ===" echo "" Чтобы сохранить настройки Персонажей вводим команды cd /home/gamedbd ./gamedbd gamesys.conf exportclsconfig Автор K@$PeR
Флуд заканчиваем Тема закрыта
??????, ??? ??? ???? ?????
Получил хостинг но он замудреный но хороший по параметрам <_< И так 1 проблема немогу поставить туда не phpbb т.к реклама хостинга сносит страницу изза <div>'ов А когда ставлю ipb случается такая хня при установке либо "ошибка базы данных" либо "связь с сервером закрыта" Но страничку назад во 2 случае и продолжается установка если не вылетел 1 случай :D Далее с горем пополам установил форум Ipb теперя что при входе на сайт тупо белая страница... при входе в админ центер тож самое Знающие люди помогите :o А в пу аккаунта хостинга есть функция настройка php?
Неплохо но как же гмы доступ получат?? <_< А зачем им доступ к iweb? Как зачем, чтоб сервер падал, а нубоадмин думал что его ломают =)
???? ????? ????? =)
Тонкая настройка MySQL (часть 1 ) Вадим Ткаченко, руководитель студии "Stealth Web" Эта заметка, в основном, является переводом соответствующих разделов руководства по MySQL. Здесь собраны возможные способы настройки и использования MySQL-сервера для достижения максимальной производительности. Все нижесказанное относится к версии 3.22 для Linux. Для других операционных систем некоторые из утверждений могут не выполняться. Компилирование исходников. Для достижения наибольшей производительности сервера нужно учитывать такие факты: При компиляции pgcc с опцией -O6 mysqld работает на 11 % быстрее, чем если компилировать обычным gcc.Если использовать динамическую линковку, то результат будет на 13% медленней, чем при статической.Если использовать TCP/IP соединения, то результат на 7.5% хуже, чем при использовании UNIX - сокетов. В связи с этим рекомендуется поставить компилятор pgcc ( http://www.goof.com/pcg/ ). Этот совет, конечно, имеет смысл, если у вас Pentium процессор. Pgcc будет полезен не только для компилирования MySQL, разработчики этого компилятора утверждают, что откомпилированные им программы минимум на 5% работают быстрее, чем откомпилированные с помощью gcc. Запуск конфигуратора может иметь такой вид ( во внимание вышеизложенные факты ): CFLAGS="-O6 -fomit-frame-pointer" \ CXX=gcc \ CXXFLAGS="-O6 -fomit-frame-pointer \ -felide-constructors -fno-exceptions -fno-rtti" \ ./configure \ --enable-assembler \ --disable-shared \ --with-mysqld-ldflags="-all-static" \ --with-client-ldflags="-all-static" \ --with-unix-socket-path=/tmp/mysql.sock \ --prefix=/usr Настройка переменных. Если запустить mysqladmin -variables, то можно увидеть примерно такую картину. Variable_name Value back_log 5 connect_timeout 5 basedir/usr/local/ datadir/home/www/data/ delayed_insert_limit100 delayed_insert_timeout300 delayed_queue_size1000 join_buffer 131072 flush_time0 key_buffer8388600 language/usr/local/share/mysql/english/ logOFF log_updateOFF long_query_time10 low_priority_updatesOFF max_allowed_packet1048576 max_connections100 max_connect_errors10 max_delayed_insert_threads20 max_join_size4294967295 max_sort_length1024 net_buffer_length16384 pid_file/usr/local/var/mysqld.pid port3306 protocol_version10 record_buffer131072 skip_lockingON skip_networkingOFF socket/tmp/mysql.sock sort_buffer2097144 table_cache64 thread_stack65536 tmp_table_size1048576 tmpdir/tmp/ version3.22.27 wait_timeout28800 От настройки этих переменных сильно зависит производительность сервера. Надо сказать, что не существует наилучших значений для всех случаев. Для каждого конкретного сервера и поставленных задач нужно выбирать свои значения. Рассмотрим подробнее эти переменные (......выделены наиболее важные из них ). back_log - этот параметр показывает, сколько одновременно может быть невыполненных запросов на соединение (connection requests). Параметр имеет большое значение в тех случаях, когда к MySQL поступает ОЧЕНЬ много запросов на соединение в малый промежуток времени. Когда к MySQL поступает connect-запрос, производятся следующие действия - проверяется, разрешен ли доступ к серверу, и если разрешен, то порождается новый процесс. Все это занимает достаточно мало времени. Однако если за это время поступит еще один connect-запрос, то он заносится в очередь. Параметр back_log определяет длину этой очереди. Если количество запросов превысит данное значение, то все непомещающиеся запросы будут игнорироваться. По умолчанию значение back_log равно 5, что вполне достаточно для большинства серверов. Максимально значение back_log ограничено операционной системой. connect_timeout - количество секунд, которое сервер ждет connect-пакета, по истечении этого времени будет выдан пакет " соединение ". Для более детальных разъяснений см. описание TCP/IP протокола. delayed_insert_timeout - как долго поток INSERT DELAYED будет ожидать данных для INSERT. Более подробно значение слова DELAYED расписано в описании INSERT запроса. delayed_insert_limit - INSERT DELAYED вставив количество записей, равное delayed_insert_limit, проверяет, есть ли SELECT-запрос к этой же таблице. Если есть, то выполняется SELECT, и только после этого продолжается INSERT. delayed_queue_size - Для выполнения INSERT DELAYED будет выделятся очередь длиной в delayed_queue_size строк. Когда очередь заполниться все остальные конкурирующие INSERT DELAYED запросы будут ждать, пока не освободиться место в этой очереди. flush_time - Если значение больше нуля, то каждые flush_time секунд все таблицы будут закрываться. Это позволит освобождать неиспользуемые ресурсы и синхронизировать данные на диске. join_buffer - Величина буфера, который используется для полных JOIN запросов (.. для полного объединения двух таблиц без использования индексов ). Память под такой буфер выделяется один раз для каждого запроса. Увеличение параметра ускорит выполнение таких запросов. Более естественный путь ускорить полные JOIN запросы - использовать индексы. key_buffer - Величина буфера ( байтах ), который используется для индексов. Этот буфер общий для всех потоков. Если используется много DELETE или INSERT запросов к таблицам с большим кол - индексов, то увеличение значения повысит скорость выполнения таких запросов. Для достижения еще большей скорости нужно использовать LOCK TABLES. long_query_time - Если время выполнения запроса превысит данное значение ( сек.), то внутренний счетчик slow_queries будет увеличен на 1. Посмотреть значение счетчика можно командой mysql>status. max_allowed_packet - Максимальный размер пакета для передачи данных. Данные между клиентом и сервером передаются пакетами. В начале создается пакет длиной net_buffer_length затем, если размер данных больше, то размер пакета увеличивается до необходимого значения, при этом его длина не может превысить значение max_allowed_packet. Если используются поля BLOB большого размера, то рекомендуется увеличить значение этого параметра. В идеале нужно присвоить этой переменной значение размера самого большого BLOB поля. max_connections - Максимальное количество открытых соединений. Определяет, сколько клиентов одновременно могут работать с сервером. Увеличение параметра увеличивает количество используемых дескрипторов файла. max_connect_errors - Если в процессе общения с клиентом произошел обрыв соединения (interrupt connection), то счетчик ошибок для хоста клиента увеличивается на 1. Когда значение этого счетчика достигнет max_connect_errors, то все последующие соединения с данного хоста будут игнорироваться. Для обнуления счетчиков использовать команду FLUSH HOSTS. max_delayed_threads - Максимальное количество потоков, которые выполняют INSERT DELAYED. Если будет вызван запрос INSERT DELAYED, а при этом достигнуто значение max_delayed_threads, то такой запрос будет выполнен как обычный INSERT ( опции DELAYED). max_join_size - Максимальное количество записей, которое может быть возвращено полным JOIN запросом. Если в JOIN запросе кол - записей превысит это значение, то будет возвращена ошибка. Увеличение значения этого параметра позволит выполнять большие запросы, но при этом следует учитывать, то такие запросы съедают много процессорного времени и могут содержать миллионы записей. max_sort_length - При сортировке BLOB или TEXT полей из каждого поля берутся только первые max_sort_length байт, а остальные отбрасываются и при сортировке не учитываются. max_tmp_tables - Максимальное количество временных таблиц, которые клиент может сохранять открытыми одновременно. На самом деле в версии 3.22 это поле ни на что не влияет. net_buffer_length - Размер пакета для передачи данных (. max_allowed_packet) Обычно этот параметр не нужно изменять, но если у вас очень мало памяти, то его можно уменьшить до ожидаемого размера результата запроса. record_buffer - Каждый поток, который осуществляет последовательное сканирование таблиц ( это происходит в SELECT запросах ), для каждой таблицы, участвующей в сканировании выделяет память размером record_buffer. Если будет много запросов, требующих последовательно сканировать таблицы, то значение этого параметра рекомендуется увеличить. sort_buffer - Каждый поток, который осуществляет сортировку данных (ORDER BY или GROUP BY), выделяет память размером sort_buffer. Для повышения быстродействия запросов с ORDER BY или GROUP BY это значение необходимо увеличить. table_cache - Количество открытых таблиц для ВСЕХ потоков. Увеличение значения приведет к увеличению количества используемых дескрипторов файла. MySQL необходимо 2 дескриптора для каждой открытой таблицы. tmp_table_size - Максимальный размер временных таблиц. При превышении этого размера возвращается ошибка table tbl_name is full. При использовании сложных GROUP BY запросов значение нужно увеличить. thread_stack - Размер стека для каждого потока. Обычно значение по умолчанию является достаточным. wait_timeout - Время, которое поток ждет повторного обращения. Если за это время к потоку не было ни одного обращения, то поток убивается. Параметры table_cache, max_connections и max_tmp_tables определяют, как много файлов сервер будет держать открытыми. Максимально количество открытых файлов для каждого процесса ограничивается операционной системой. На многих ОП это количество можно увеличить. Для более детальной информации см. руководство по вашей ОП. table_cache зависит от max_connections. Например, если у вас 200 открытых соединений, то вам может понадобиться до 200*n открытых таблиц, где n - количество таблиц, участвующих в запросах. MySQL при работе с таблицами использует хорошо масштабируемые алгоритмы, так что MySQL может работать даже при малых объемах памяти. Естественно для лучшей производительности нужно больше оперативной памяти. Изменить значение настроек можно при запуске сервера опцией -O, например, >safe_mysqld -O key_buffer=1 6M ( значениях, которые измеряются в байтах, для сокращения, можно использовать буквы К и М ). Если у вас много памяти и много таблиц, то для увеличения производительности, при запуске сервера можно использовать такие значения. >safe_mysqld -O key_buffer=16M -O table_cache=128 \ -O sort_buffer=4M -O record_buffer=1M & Если у вас мало памяти и ожидается мало соединений, то лучше сервер запускать с такими опциями >safe_mysqld -O key_buffer=512k -O sort_buffer=100k \ -O record_buffer=100k & или даже > safe_mysqld -O key_buffer=512k -O sort_buffer=16k \ -O table_cache=32 -O record_buffer=8k -O net_buffer=1K & Необходимо принимать во внимание, что, если сервер сконфигурировать для использования малого объема памяти, то в случае большого числа соединений может возникнуть " своппинга ", которая сильно затормозит сервер. Как MySQL работает с памятью. Здесь приведено описание того, как MySQL сервер работает с оперативной памятью. В скобочках жирными буквами указаны переменные, которые влияют на то или иное значение. Key_buffer является общим для всех потоков. Все остальные буфера выделяются по мере необходимости.Каждое соединение использует некоторое количество памяти. Это память для стека (thread_stack), буфер соединения (net_buffer_length) и буфер результата (net_buffer_length)Для каждого запроса, требующего последовательно сканировать таблицу, выделяется буфер чтения (record_buffer).Все JOIN запросы выполняются в один проход и для большинства таких запросов нет необходимости применять вспомогательные таблицы. В основном вспомогательные таблицы формируются в памяти, но если такая таблица имеет слишком большой размер записи или используется тип BLOB, то она сохраняется на диске. Если размер вспомогательной таблицы, которая хранится в памяти, превысит tmp_table_size, то будет возвращена ошибка table_name is full. Для избежания такой ошибки нужно или увеличить значение tmp_table_size, или включить опцию SQL_BIG_TABLES ( можно сделать либо запросом SET SQL_BIG_TABLES=1, либо запускать mysqld с опцией -big-tables). При включенной опции SQL_BIG_TABLES все вспомогательные таблицы формируются не в памяти, а на диске.Запросы с сортировкой выделяют в памяти буфер для сортировки (sort_buffer) и используют один или два временных файла.Таблицы с данными открываются каждым конкурирующим потоком. Индексные файлы открываются всего один раз, не зависимо от количества потоков, использующих эти файлы.Для таблиц с BLOB-полями буфер автоматически увеличивается до размера самого большого BLOB-поля.Дескрипторы всех открытых таблиц хранятся в кэше, который работает по принципу FIFO. Размер кэша определяется переменной table_cache. Если несколько потоков открывают одну и туже таблицу, то для каждого потока выделяется свой дескриптор таблицы.Команда mysqladmin flash-tables закрывает все таблицы, которые не используются в данный момент, а все используемые таблицы помечает для закрытия. Такая операция позволяет освободить неиспользуемую память. Как работать с таблицами для достижения большей производительности. По возможности все поля декларировать как NOT NULL. Это сделает работу с таблицами более быстрой и сохранит 1 бит на каждое такое поле.Применять значения по умолчанию (DEFAULT). При вызове запроса INSERT в таблицу будут записываться только те поля, значения которых отличаются от DEFAULT.Используйте настолько малые типы INT, насколько это возможно. Например, применять MEDIUMINT намного лучше, чем обычный INT.Если у вас нет записей с переменной длиной ( ни одного поля с типом VARCHAR, BLOB или TEXT), то таблица сохраняется в формате " постоянной длиной записи ". Это несколько расходует память, но намного повышает скорость работы.При использовании нескольких последовательных INSERT запросов, лучше все данные указать в одном INSERT, чем делать несколько INSERT.При загрузке данных в таблицу лучше использовать LOAD DATA INFILE, чем INSERT, такой метод в 20 раз быстрее.Для увеличения скорости LOAD DATA INFILE и INSERT нужно увеличить значение переменной key_buffer.Если ожидается много запросов INSERT или UPDATE, работающих одновременно, то для большей скорости рекомендуется приметь LOCK TABLES.Время от времени нужно дефрагметировать таблицы. Это делается утилитой isamchk с опциями - evi. Форматы таблиц в MySQL MySQL для хранения данных использует три типа таблиц: с фиксированной длиной строки, с динамической длиной строки и сжатые таблицы. Таблицы с фиксированной длиной строки. Этот формат применяется по умолчанию, если в таблице нет полей с типом VARCHAR, BLOB или TEXT. Все поля типа CHAR, NUMERIC и DECIMAL дополняются в конце пробелами. Высокая скорость работы. Легко кэшируются. Легко восстановить после краха, так как все строки имеют постоянную длину. Не требуют реорганизации ( помощью isamchk), до тех пор, пока не будет удалено очень много записей, и вы захотите освободить место на диске. Обычно такие таблицы занимают больше места, чем таблицы с динамической длиной строки. Таблицы с динамической длиной строки. Этот формат применяется, если в таблице есть поля с типом VARCHAR, BLOB или TEXT. Все строки динамические (CHAR хранятся как VARCHAR, кроме тех у которых длина меньше 4). Каждое поле имеет дополнительный бит, который устанавливается, если строковое поле равно "" ( строка ), или если числовое поле равно 0 ( не то же самое, когда поле может иметь значение NULL). Непустые строки хранятся в виде {_} {_} Обычно такие таблицы занимают намного меньше места, чем таблицы с фиксированной длиной. Ожидаемая длина строки вычисляется по формуле: 3+(количество полей + 7)/8+(количество полей типа CHAR)+(размер числовых типов в бинарном виде )+(длина всех строк )+(количество NULL-полей + 7)/8. Сжатые таблицы. Таблицы "только для чтения", их можно получить с помощью утилиты pack_isam. Эту утилиту получают все покупатели, которые приобрели расширенную поддержку MySQL. Основная характеристика - занимают мало места. Использование индексов. Все индексы (PRIMARY, UNIQUE и INDEX) хранятся в B-дереве. В строковых типах автоматически происходит сжатие начальных и конечных пробелов. Индексы используются для: Быстрого поиска записей по условию WHERE; Для объединения таблиц с посредством JOIN; Поиска MAX() и MIN() значений для ключевых полей ; Для сортировки и группировки таблиц (......ORDER BY и GROUP BY); Для извлечения данных не из таблицы с данными, а из индексного файла. Это возможно только в некоторых случаях, например, когда все извлекаемые поля проиндексированы. Рассмотрим следующий запрос SELECT: SELECT * FROM tbl_name WHERE col =val AND col2=val2; Если таблица имеет множественный индекс (col,col2), то соответствующие записи будут выбраны напрямую. Если существуют только одиночные индексы для col и col2, то оптимизатор сначала решит, при использовании какого индекса, количество возвращаемых записей будет меньше, а затем из этих записей будет произведена выборка по другому условию. Если таблица имеет множественный индекс, то любой " префикс " этого индекса может использоваться для оптимизации запроса. Например, если есть индекс (col, col2, col3), то можно считать, что существуют индексы (col ); (col,col2); (col,col2,col3). Любая другая часть индекса не может быть использована для оптимизации. Рассмотрим для примера такие запросы: mysql> SELECT * FROM tbl_name WHERE col =val ; mysql> SELECT * FROM tbl_name WHERE col2=val2; mysql> SELECT * FROM tbl_name WHERE col2=val2 AND col3=val3; Если есть индекс (col,col2,col3), то только в первом запросе будет использоваться индекс. Хотя второй и третий запросы содержат столбцы, которые присутствуют в индексе, но (col2) и (col2,col3) не являются левыми частями множественного индекса, и поэтому при выполнении этих запросов индекс применятся не будет. MySQL также использует индексы для LIKE операций, если аргумент LIKE является строковой константой и при этом не начинается с символа шаблона (% или _). Например, следующие SELECT запросы используют индекс для key_col: mysql> select * from tbl_name where key_col LIKE "Patrick%"; mysql> select * from tbl_name where key_col LIKE "Pat%_ck%"; А следующие два запроса выполняются без использования индекса: mysql> select * from tbl_name where key_col LIKE "%Patrick%"; mysql> select * from tbl_name where key_col LIKE other_col; В первом из этих запросов аргумент после LIKE начинается c символа шаблона, а во втором аргумент не является константой. <a name="7"> Общие рекомендации по повышению производительности. Запускать mysqld с правильно подобранными опциями (. настройка переменных ).Для ускорения SELECT запросов построить индексы для тех полей, которые участвуют в условии WHERE.Оптимизировать типы полей. По возможности использовать NOT NULL. (. работу с таблицами ).В MySQL применяется два способа блокировки таблиц (lock table) - внутренняя и внешняя блокировки. Внутренняя блокировка позволяет делать операции по изменению / данных атомарными ( конфликтующими с другими пользователями ). Внешняя блокировка применяется для одновременного доступа нескольких MySQL серверов к одним и тем же базам данных, а также внешняя блокировка позволяет запускать isamchk без остановки MySQL. Чтобы запретить использование внешней блокировки нужно запускать mysqld с опцией -skip-locking. Запрет внешней блокировки существенно повысит скорость работы, но при этом перед запуском isamchk нужно предварительно сбросить все данные на диск командой mysqladmin flush-tables. Также при запрете внешней блокировки нельзя будет использовать несколько серверов для работы с теми же базами данных. Задание прав доступа на конкретную таблицу или поле снижает производительность. Во второй части будет описана работа с блокировкой таблиц при изменении и добавлении данных и как это влияет на скорость работы. Все замечания и пожелания принимаются по адресу [email protected]
И так приступим!!!! Сначало заходим в основную папку с вашим сервером и копируем всю папку "gameserver" назовём её к примеру "gameserver2" Затем открываем новую папку "gameserver2" и заходим в папку "config" находим файл "database" и меняем значение "au_server_gs" на "au_server_gs2" есть вот и картинка )) [img] Теперь лезем в Navicat, ну или у кого что другое)) Создаём в нём ещё одну базу с названием "au_server_gs2" и заливаем туда всё что и в "au_server_gs" воть картинка [img] Потом залазием в том же Navicat в базу "au_server_ls" и добовляем ещё одну строчку в "gameservers" ставим "id" со значением 2 и меняем пароль на ваше усмотрение вот опять картинка [img] Теперь возвращаемся к конфигам, в вашей новой папке "gameserver2" в папке "config" находим файл "gameserver" и меняем значения "gameserver.network.client.port=7777" на "gameserver.network.client.port=7778" ну или кому как удобнее, далее меняем "gameserver.network.login.gsid=1" на "gameserver.network.login.gsid=2", ну и "password" меняем на тот который прописали в Navicat и опять блин картинка )) [img] Ну вот впринцепе и всё, запускайте батники от 2х или более ваших gameserver/ов, меняйте названия у серваков при выборе когда запускаете клиент естественно пока только в самом клиенте. Но радоватся и хлопать в лодоши пока что рано Как сказал один замечательный человек )) "логин "кидает" клиент на один и тот же серв не зависимо от выбора из списка в клиенте! Логин переделывать надо.... он тупо из списка выбирает меньший ID, к нему и коннектит клиент" Так что мы пока что имеем ещё один пустой сервак в выборе серверов в клиенте, но я считаю и ето уже прогрессс Если у кого нибудь есть какие нибудь сооброжения выкладывайте нестесняйтесь.... Автор Merzky
Возможность летать на любой локации Сейчас мы научимся, как можно разрешить летать на любой локации. 1. Клиент Файл: system.ovr Меняем значение: g_freefly = "1" 2. Сервер Открываем файл \gameserver\data\static_data\zones_XXXXXXX.xml Находим строку: <zone mapid="XXXXXXX" name="НазваниеЛокации" priority="16"> И добавляем к ней значение fly="true" Получаем: <zone mapid="XXXXXXX" name="НазваниеЛокации" priority="16" fly="true"> Перезагружаем сервер и вуаля! Летаем на нужной нам локации. Удачных вам исследований! Автор Ramon
Компиляция ядра AION-Unique Всем привет, начнем. Для начала нам нужно подготовится, поэтому: 1. Скачиваем черепашку отсюда.(х86x64 2. Скачиваем ANT 3. Устанавливаем веб сервер, на моем примере это Vertrigo Далее создаем папку, например: D:\AION FILES\aion и кликаем правой кнопкой мыши по папке aion выбираем SVN Checkout (тут описано подробно) и вставляем ссылку: http://code.assembla.com/ae-go/subversion/changesets пока у нас скачиваются исходники мы в папку D:\AION FILES распаковываем ранее скачанный ANT и в этой же папке создаем два БАТника: 1. Назовем например: Compile GameServer.bat и внутри вставляем следующий код:@echo off cd aion\trunk\AE_GameServer start ..\..\..\ant\bin\ant clean dist 2. Compile LoginServer.bat@echo off cd aion\trunk\AE_LoginServer start ..\..\..\ant\bin\ant clean dist Структура папок должна выглядеть так: D:\AION FILES aion-emu ant Compile GameServer.bat Compile LoginServer.bat Если исходники скачались нормально, то в папке aion-emu будет так: D:\AION FILES\aion- .svn - скрытая папка examples tools trunk .project Thumbs.db Запускаем Батники(.bat), ждем окончания и идем в D:\AION FILES\aion\trunk\AE_GameServer\build видим архив ae_gameserver.zip - это гейм сервер.(gameserver) D:\AION FILES\aion\trunk\AE_LoginServer\build архив ae_login.zip - соответственно логин сервер. Распаковываем куда вам нравится настраиваем конфиги, заливаем базы и запускаем сервер. Если что не понятно, спрашиваем. Вот собственно и всё[img] Автор maa
Здравствуйте! Компилим ядро! 1)Для установки нам потребуется последняя версия java сервера Aion от команды Aion-Emu или Aion-Unique (ссылки на официальные сайты описаны в теме svn репозитории исходных кодов). MySQL 5-й версии (4-я и 6-я не поддерживаются). Что бы управлять MySQL, рекомендуем использовать программу HeidiSQL. Java SE Development Kit (JDK) последней версии, который доступен с официальной страницы. 2)Установить MySQL (выберите директорию установки С:\Other\MySQL и не забудьте указать пароль) и Java SE Development Kit не составит труда даже начинающему пользователю пк, а Вы ведь уже как минимум начинающий администратор, или это не так? Вот и я думаю, что описывать эти пункты не следует, но если все же появятся проблемы, то опишите их на форуме Aion, обязательно постараемся вам помочь. 3)Для начала расскажу, как лучше извлечь файлы из скачанного вами архива сервера Aion. Создайте на диске C:\ директорию с простым названием, например: Server. После этого, начинайте в нее извлекать архив ae_datapack.zip. Должно получится как у меня на рисунке ниже. 4)Точно так же продолжайте извлекать архивы ae_gameserver.zip и ae_loginserver.zip. Теперь, мы можем приступать к установке сервера Aion на ваш компьютер. Создайте с помощью HeidiSQL новую базу данных MySQL, для этого на активном соединении нажмите правой клавишей мыши и выберите пункт Create database, точно так же, как показано на рисунке ниже. 5) Введите название базы данных MySQL, например: aion и нажмите на клавишу Ok. Этим действием мы создадим новую базу данных, по имени aion со стандартной кодировкой latin1 (именно эта кодировка использована в таблицах java сервера Aion). Откройте базу данных , которую вы создали.Создайте там базу ae_gameserver Потом откройте директорию гейм-сервер например - /gameserver/sql/*** и залейте все файлы с расширением .sql в базу ae_gemeserver. Cоздайте базу ae_loginserver.Потом откройте директорию с логин-сервером например - /loginserver/sql/*** залейте все файлы с расширением .sql в базу ae_loginserver. 6) Дальше нам необходимо зарегистрировать сервер авторизации открываем mysql - база данных ae_gameserver - и таблицу gameserver в поле: id - вводим 1 mask - Ваш айпи *или же айпи локалки 127.0.0.1* password - 12345 7)Все, с базой данных мы окончили, и приступаем к следующему шагу, а именно, редактированию конфигурационных файлов java сервера Aion. Для этой цели достаточно стандартного блокнота, который поставляется в системе Windows, но я выбрал Notepad++, можете и себе скачать, уверяю, после его установки, Вы больше не будете пользоваться различными блокнотами. Перейдите в директорию C:\Server\gameserver\config\ и начнем с файла database.properties, открываем его блокнотом и заполняем опции: # This is database url. database.url=jdbc:mysql://localhost:3306/aion # Database user database.user=root # Database password database.password=пароль MySQL Продолжаем и на этот раз файл gameserver.properties: # Host that will be used to listen for client connections gameserver.network.client.host=127.0.0.1 # Id of this game server gameserver.network.login.gsid=1 # Password of this game server gameserver.network.login.password=12345 # Name of gameserver gameserver.name=Aion ZG-Team # Server Country Code (cc) gameserver.country.code=1 Хочется немного пояснить с последними двумя опциями, gameserver.name указывает название сервера в приветственном сообщении вашего java сервера Aion, а gameserver.country.code это код страны клиента, его узнать очень просто, откройте в директории с клиентом Aion файл cc.ini и узнаете код. У Европейского клиента он равен 1. 8)Открываем и редактируем файл ipconfig.xml <ipconfig default="ВВОДИМ ВАШ АЙПИ!"> <!-- IANA-reserved private IPv4 network ranges Access only from local networks, external client can't have any of the following ip addresses --> </ipconfig> Все, переходим в директорию D:\Server\loginserver\config\ и настраиваем файл loginserver.properties: # LoginServer will bind specified network interface # * - bind all interfaces loginserver.network.client.host=127.0.0.1 # Host that will be used by LS to listen for GS connections loginserver.network.gameserver.host=127.0.0.1 # Create accounts automatically or not? loginserver.accounts.autocreate=true 9)Если Вы указали в таблице gameserver (поле MASK) IP-адрес отличный от того, что я указал в опции loginserver.network.client.host, то укажите здесь свой. Настройка файла database.properties ничем не отличается от того, что мы настраивали для gameserver. # This is database url. database.url=jdbc:mysql://localhost:3306/aion # Database user database.user=root # Database password database.password=пароль MySQL 9)Поздравляю друзья, Вы установили сервер Aion и теперь осталось его запустить, для этого запустите файл D:\Server\loginserver\StartLS.bat и спустя несколько секунд запустите D:\Server\gameserver\StartGS.bat. Дождитесь полной загрузки игрового сервера и можете подключаться к нему с помощью игрового клиента Aion. Авторм maa
Если кому интересно. config.php <? $dbip ="127.0.0.1"; // IP mysql $dbport ="3306"; // порт mysql $dblogin ="root"; // логин mysql $dbpass =""; // пароль mysql $gameserver ="au_server_gs"; // название game базы ?> index.php <table> <tr> <td><strong>Имя персонажа</strong></td> <td><strong>Денег</strong></td> </tr> <?php require_once ('config.php'); mysql_connect ("$dbip:$dbport","$dblogin","$dbpass"); mysql_selectdb ("$gameserver"); mysql_query ('set names cp1251'); $result = mysql_query ("SELECT inventory.itemId, inventory.itemCount, inventory.itemOwner, players.Id, players.admin, players.name AS players FROM inventory LEFT JOIN players ON itemOwner = players.id WHERE inventory.itemId = 182400001 AND NOT players.admin = 1 ORDER by itemCount DESC LIMIT 100"); while ($row = mysql_fetch_array ($result)) { $ch_name = $row['players']; $ch_money = $row['itemCount']; echo "<tr><td><strong>$ch_name</strong></td>"; echo "<td><strong>$ch_money</strong></td></tr>"; } ?> </table>
<?php if (isset($_POST['submit'])) { $mysql_host = "127.0.0.1"; $mysql_login = "root"; $mysql_pass = "root"; $mysql_db = "aionls"; mysql_connect($mysql_host, $mysql_login, $mysql_pass) or die("Не удалось подключится к МуСКЛ: ".mysql_error()); mysql_select_db($mysql_db) or die("Не удалось выбрать базу данных: ".mysql_error()); $nick = htmlspecialchars(stripslashes(trim($_POST['nick']))); $password = htmlspecialchars(stripslashes(trim($_POST['password']))); $result = mysql_query("SELECT id FROM account_data WHERE name='".$nick."'"); $no_errors = 1; print "<center>"; if(empty($nick)) { $no_errors = 0; print "<b>Введите пожалуйста Логин/Аккаунт.</b><br>"; } elseif(preg_match("[0-9a-Z]",$nick)) { $no_errors = 0; print "<b>Введен неправильный Логин/Аккаунт.</b><br>"; } elseif(strlen($nick) < 4) { $no_errors = 0; print "<b>Логин/Аккаунт должен состоять минимум из 4x символов.</b><br>"; } elseif(mysql_num_rows($result) >= 1) { $no_errors = 0; print "<b>Логин/Аккаунт который вы указали уже существует.</b><br>"; } if(empty($password)) { $no_errors = 0; print "<b>Вы забыли написать пароль.</b><br>"; } elseif(preg_match("[0-9a-z]",$password)) { $no_errors = 0; print "<b>Введен неправильный Пароль.</b><br>"; } elseif(strlen($password) < 6) { $no_errors = 0; print "<b>Пароль должен состоять минимум из 6и символов.</b><br>"; } print "</center>"; if ($no_errors == 1) { //$password_md5 = md5($password); $password_md5 = $password; $query = "INSERT INTO account_data (id, name, password, activated, access_level) VALUES ('', '$nick', '".base64_encode(sha1($_POST['password'],true))."', '1', '0')"; $result = mysql_query($query) or die("Не удалось добавить новую запись: ".mysql_error()); print "<center>Ваш Логин/Аккаунт <b>".$nick."</b><br>"; print "Пароль <b>".$password."</b> удачно зарегестрирован.<br>"; print "Приятной игры.<br></center>"; } else { print "<center><b>Не заполнены все поля.</b></center>"; } } ?> <form action="" method="post"> <left> 1. Логин/Аккаунт должен состоять минимум из 4х символов.<br> 2. Пароль должен состоять минимум из 6и символов.<br> 3. Все поля при регистрации должны быть заполнены.<br> </left> <br><br> <center> <table> <tr><td>Логин/Аккаунт:</td><td><input name="nick" type="text" value=""></td></tr> <tr><td>Пароль:</td><td><input name="password" type="password" value=""></td></tr> </table> <input type="submit" value="Зарегистрироватся" name="submit"> </form> </center> (C) Sam3000
<div class="notes"></a><h3>Сейчас в игре:</h3><table width="450" border="0" cellspacing="0" cellpadding="0"><tr><td width="380" align="left" valign="top"> <table width="100%" border="1" cellspacing="0" cellpadding="0" class="userstop"> <?php $databaseHost = 'localhost'; // Ставь свой ип если ты ставишь скрипт на удаленном сервере $databaseLogin = 'root'; // Тут логин от базы mysql (По стандарту root) $databasePassword = 'ПарольБД'; // Обязательно (Пиши пароль от базы mysql) $databaseName = 'НазваниеБазы'; // Имя базы mysql_connect($databaseHost,$databaseLogin,$databasePassword) or die (mysql_error()); mysql_select_db($databaseName) or die(mysql_error()); <img src="http://www.ruaion.com/forum/attachment.php?attachmentid=6&d=1261660208" /> $result = mysql_query("SELECT name, account_id, exp, player_class, race FROM players WHERE online=1"); while ($row = mysql_fetch_array($result)) { if($row["race"] == ASMODIANS) $race = "<img src='/images/asmodian.png' alt='Асмодиан'>"; if($row["race"] == ELYOS) $race = "<img src='/images/elyos.png' alt='Элиос'>"; printf ("".$race."<font color=green> <a href=# title='ID: {$row['account_id']} | Класс: {$row['player_class']} | EXP: {$row['exp']} '>%s</a></font> ", $row[0], $row[1]); } $num=mysql_numrows($result); echo " <h3>Всего игроков: <font color=green>$num</font></h3>"; ?> </table></div></table></td></tr></table></div> Иконки: [ATTACH] [ATTACH] Загрузите их в папку /images/ на сервере или редактируйте код. © Invision
Имена участников (разделяйте запятой).