"Morten Gulbrandsen" <[EMAIL PROTECTED]> wrote:
> I think something is wrong with my administration,
> 
> Basically I get these messages,
> 
> ERROR 1005 at line 9: Can't create table '.\company\department.frm'
> (errno: 150)
> 
> ERROR 1045: Access denied for user: '[EMAIL PROTECTED]' (Using password:
> YES)
> 
> ERROR 1133: Can't find any matching row in the user table
> 
> C:\mysql\examples\elmasri>mysql  -u root -p*******
> Welcome to the MySQL monitor.  Commands end with ; or \g.
> Your MySQL connection id is 16 to server version: 4.1.0-alpha-max-debug
> 
> Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
> 
> mysql> use mysql;
> Database changed
> mysql> update user set password = password('navathe') where user =
> 'elmasri';
> Query OK, 1 row affected (0.02 sec)
> Rows matched: 1  Changed: 1  Warnings: 0
> 
> mysql> flush privileges;
> Query OK, 0 rows affected (0.02 sec)
> 
> mysql> quit
> Bye
> 
> C:\mysql\examples\elmasri>mysql  -u elmasri  -pnavathe  company
> Welcome to the MySQL monitor.  Commands end with ; or \g.
> Your MySQL connection id is 17 to server version: 4.1.0-alpha-max-debug
> 
> Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
> 
> mysql> quit
> Bye
> 
> C:\mysql\examples\elmasri>mysql -u elmasri -pnavathe company <
> company_01.sql
> ERROR 1005 at line 9: Can't create table '.\company\department.frm'
> (errno: 150)
> 
> 
> C:\mysql\examples\elmasri>
> C:\mysql\examples\elmasri>type company_01.sql
> # mysql -u root -h localhost -p -vvv  < company_01.sql
> 
> USE company;
> 
> # SHOW INNODB STATUS;
> 
> DROP TABLE IF EXISTS DEPARTMENT;
> 
> CREATE TABLE DEPARTMENT
> (
> DNAME           VARCHAR(15)     NOT NULL,
> DNUMBER         INT             NOT NULL,
> MGRSSN          CHAR(9)         NOT NULL,
> MGRSTARTDATE    DATE,
> 
> PRIMARY KEY (DNUMBER),
> UNIQUE (DNAME),
> 
> INDEX (MGRSSN),          # between employee and department
> FOREIGN KEY (MGRSSN)    # a sort of mutually declaration
> REFERENCES EMPLOYEE(SSN) # this is declared in employee
> 
> )TYPE = INNODB;

You create table DEPARTMENT with foreign key, which is referenced to the non-existent 
table EMPLOYEE. So, you need to create both table without foreign keys and then add 
foreign key constraints or execute SET FOREIGN_KEY_CHECKS=0 before table creation. 

> 
> 
> DROP TABLE IF EXISTS EMPLOYEE;
> 
> CREATE TABLE  EMPLOYEE
> (
> FNAME           VARCHAR(15)     NOT NULL,
> MINIT           CHAR,
> LNAME           VARCHAR(15)     NOT NULL,
> SSN             CHAR(9)         NOT NULL,
> BDATE           DATE,
> ADDRESS         VARCHAR(30),
> SEX             CHAR,
> SALARY          DECIMAL(10,2),
> SUPERSSN        CHAR(9),
> DNO             INT             NOT NULL,
> 
> PRIMARY KEY (SSN),
> INDEX (SUPERSSN, SSN),
> 
> FOREIGN KEY (SUPERSSN)
> REFERENCES EMPLOYEE(SSN),
> 
> INDEX (DNO, DNUMBER),
> FOREIGN KEY (DNO)
> REFERENCES DEPARTMENT(DNUMBER) #  this is declared in department
> )TYPE = INNODB;
> 
> 
> C:\mysql\examples\elmasri>mysql  -u root -p*******
> Welcome to the MySQL monitor.  Commands end with ; or \g.
> Your MySQL connection id is 19 to server version: 4.1.0-alpha-max-debug
> 
> Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
> 
> mysql> grant all on company.* to 'elmasri'@'localhost' identified by
> 'navathe';
> Query OK, 0 rows affected (0.00 sec)
> 
> mysql> quit
> Bye
> 
> C:\mysql\examples\elmasri>mysql  -u elmasri -pnavathe  company;
> ERROR 1045: Access denied for user: '[EMAIL PROTECTED]' (Using password:
> YES)
> 
> C:\mysql\examples\elmasri>mysql -u root -p*******
> Welcome to the MySQL monitor.  Commands end with ; or \g.
> Your MySQL connection id is 21 to server version: 4.1.0-alpha-max-debug
> 
> Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
> 
> mysql> set password for 'elmasri'@'localhost' = password('navathe');
> Query OK, 0 rows affected (0.00 sec)
> 
> mysql> set password for 'elmasri'@'%' = password('navathe');
> ERROR 1133: Can't find any matching row in the user table
> mysql>

It means the there is no any entry 'elmasri'@'%' in the table user.

> I try again with 
> Manually
> 
> mysql> create table employee( fname varchar(15) )type=innodb;
> Query OK, 0 rows affected (0.00 sec)
> 
> mysql> DROP TABLE IF EXISTS EMPLOYEE;
> Query OK, 0 rows affected (0.00 sec)
> 
> And 
> 
> 
> mysql> CREATE TABLE  EMPLOYEE
>    -> (
>    -> FNAME            VARCHAR(15)     NOT NULL,
>    -> MINIT            CHAR,
>    -> LNAME            VARCHAR(15)     NOT NULL,
>    -> SSN              CHAR(9)         NOT NULL,
>    -> BDATE            DATE,
>    -> ADDRESS          VARCHAR(30),
>    -> SEX              CHAR,
>    -> SALARY           DECIMAL(10,2),
>    -> SUPERSSN CHAR(9),
>    -> DNO              INT             NOT NULL,
>    ->
>    -> PRIMARY KEY (SSN),
>    -> INDEX (SUPERSSN, SSN),
>    ->
>    -> FOREIGN KEY (SUPERSSN)
>    -> REFERENCES EMPLOYEE(SSN),
>    ->
>    -> INDEX (DNO, DNUMBER),
>    -> FOREIGN KEY (DNO)
>    -> REFERENCES DEPARTMENT(DNUMBER) #  this is declared in department
>    -> )TYPE = INNODB;
> ERROR 1072: Key column 'DNUMBER' doesn't exist in table

I don't see column DNUMBER in the above create table definition.

> mysql> create table employee( fname varchar(15) )type=innodb;
> Query OK, 0 rows affected (0.00 sec)
> 
> 
> 
> mysql>
> mysql> CREATE TABLE  EMPLOYEE
>    -> (
>    -> FNAME            VARCHAR(15)     NOT NULL,
>    -> MINIT            CHAR,
>    -> LNAME            VARCHAR(15)     NOT NULL,
>    -> SSN              CHAR(9)         NOT NULL,
>    -> BDATE            DATE,
>    -> ADDRESS          VARCHAR(30),
>    -> SEX              CHAR,
>    -> SALARY           DECIMAL(10,2),
>    -> SUPERSSN CHAR(9),
>    -> DNO              INT             NOT NULL,
>    ->
>    -> PRIMARY KEY (SSN),
>    -> INDEX (SUPERSSN, SSN),
>    ->
>    -> FOREIGN KEY (SUPERSSN)
>    -> REFERENCES EMPLOYEE(SSN),
>    ->
>    -> INDEX (DNO),
>    -> FOREIGN KEY (DNO)
>    -> REFERENCES DEPARTMENT(DNUMBER) #  this is declared in department
>    -> )TYPE = INNODB;
> ERROR 1005: Can't create table '.\company\employee.frm' (errnoo: 150)
> mysql> exit
> Bye
> 
> C:\mysql\examples\elmasri>mysql  -u elmasri -pnavathe  company <
> company_01.sql
> ERROR 1005 at line 9: Can't create table '.\company\department.frm'
> (errno: 150)
> 
> This shows that I actually can create a table,
> 
> My question is now,
> 
> Is this code ansi sql  correct ?
> 
> How can I Modify it to run under the latest MySQL ?
> 
> Is it something wrong with the users I have created ?
> 
> I expect one user and one password for entering mysql,
> And depending upon which database I'd like to use 
> I expect for each database I'd like to use, one second password,
> 
> This seems  to be another topic,
> When I write 
> 
> mysql> grant all on company.* to 'elmasri'@'localhost' identified by
> 'navathe';
> Query OK, 0 rows affected (0.00 sec)
> 
> mysql> grant all on company.* to 'elmasri'@'%' identified by 'navathe';
> Query OK, 0 rows affected (0.00 sec)
> 
> mysql>
> 
> Then I should be able to do whatever SQL permits ?

User 'elmasri' has all privileges on the database 'company'.


-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Victoria Reznichenko
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.net
       <___/   www.mysql.com





-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to