Połączenie z bazą danych

0

Witam mam problem z połączeniem się z bazą danych wszędzie znajduję tylko przykłady jak połączyć się z lokalna bazą.

Mam tak:
Wykupiony hosting na hekko.pl stworzoną bazę danych z dostępem przez phpmyadmin.

Kod C#

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace MySqlTut
{
    public class User
    {
        //database stuff
        private const String SERVER = "s11.hekko.pl/phpmyadmin";
        private const String DATABASE = "dla_zestawienia";
        private const String UID = "dla_rf";
        private const String PASSWORD = "";
        private static MySqlConnection dbConn;
        
        // User class stuff
        public int Id { get; private set; }

        public String Username { get; private set; }

        public String Password { get; private set; }

        private User(int id, String u, String p)
        {
            Id = id;
            Username = u;
            Password = p;
        }

        public static void InitializeDB()
        {
            MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
            builder.Server = SERVER;
            builder.UserID = UID;
            builder.Password = PASSWORD;
            builder.Database = DATABASE;

            String connString = builder.ToString();

            builder = null;

            Console.WriteLine(connString);

            dbConn = new MySqlConnection(connString);

            Application.ApplicationExit += (sender, args) => {
                if (dbConn != null) 
                {
                    dbConn.Dispose();
                    dbConn = null;
                }
            };
        }

Nie łączy mnie w ogóle z bazą, podejrzewam że trzeba inaczej serwer wpisać ale za bardzo nie wiem jak.

0

Tak i otrzymuję error:

An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll

Additional information: Authentication to host 'mysql3.hekko.net.pl' for user 'dla_rf' using method 'mysql_native_password' failed with message: Access denied for user 'dla_rf'@'89.78.187.128' (using password: YES)

Mimo że mam uprawnienia, dodałem swój adres ip zarówno zew jak i wew - próbowałem też z % żeby każdy mógł się łączyć.

0

Widziałem to nie pomogło mi, co ciekawe w Javie normalnie się łączy.

0

I to już w tej linijce dbConn = new MySqlConnection(connString); cię wywala?

0

tutaj

public static User Insert
dbConn.Open();
public class User
    {
        //database stuff
        private const String SERVER = "mysql3.hekko.net.pl";
        private const String UID = "dla_rf";
        private const String PASSWORD = "moje_haslo";
        private const String DATABASE = "dla_zestawienia";
        private static MySqlConnection dbConn;
        
        // User class stuff
        public int Id { get; private set; }

        public String Username { get; private set; }

        public String Password { get; private set; }

        private User(int id, String u, String p)
        {
            Id = id;
            Username = u;
            Password = p;
        }

        public static void InitializeDB()
        {
            MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
            builder.Server = SERVER;
            builder.UserID = UID;
            builder.Password = PASSWORD;
            builder.Database = DATABASE;

            String connString = builder.ToString();

            builder = null;

            Console.WriteLine(connString);

            dbConn = new MySqlConnection(connString);

            Application.ApplicationExit += (sender, args) => {
                if (dbConn != null) 
                {
                    dbConn.Dispose();
                    dbConn = null;
                }
            };
        }

        public static List<User> GetUsers()
        {
            List<User> users = new List<User>();

            String query = "SELECT * FROM users";

            MySqlCommand cmd = new MySqlCommand(query, dbConn);

            dbConn.Open();

            MySqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                int id = (int)reader["id"];
                String username = reader["username"].ToString();
                String password = reader["password"].ToString();

                User u = new User(id, username, password);

                users.Add(u);
            }

            reader.Close();

            dbConn.Close();

            return users;
        }

        public static User Insert(String u, String p)
        {
            String query = string.Format("INSERT INTO users(username, password) VALUES ('{0}', '{1}')", u, p);

            MySqlCommand cmd = new MySqlCommand(query, dbConn);

            dbConn.Open();

            cmd.ExecuteNonQuery();
            int id = (int)cmd.LastInsertedId;

            User user = new User(id, u, p);

            dbConn.Close();

            return user;

        }
0

Połączenie np. przez MySQL Workbench działa?
Btw, w nazwie serwera nie powinno być żadnego /phpmyadmin :-P

0

@up
Zobacz kod wyżej nie ma już.

Działa workbench

0

Miałem ten sam problem, pomogło zainstalowanie starszej wersji connectora 6.9.8.
BTW connection string: UserId=nazwa_user;Password=haslo;Host=s999.hekko.net.pl;Database=nazwa_bazy;persistsecurityinfo=True;checkparameters=False;useprocedurebodies=False;sslmode=Prefered

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.