Adrien Saladin wrote:

Hello,

I'm quite new to mysql so I apologize if my question seems stupid. I hope it is the right mailing list for that question.

I'm using the mysql embedded library (libmysqld) with a small c++ program. This program created a new database in its directory and I would like to use this database like any other normal database.

I found a complicated way to do this by copying the /var/lib/mysql/mysql directory and files to my program's directory, changing owner and group to 'mysql' and then running mysqld with "--datadir=."

A symbolic link in the mysql data directory pointing to the program's directory would work as well. Then you wouldn't need --datadir, nor would you have to mess with any other db to accomodate your program.


It seems to work fine except for this message:
--------
mysql> use dbtest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>
---------

What's wrong with the message? No error is reported. Everything seems fine.

As you can see it is quite complicated. When I need to run my program, I have to change the owner and group for the database again.

Why not add yourself to the mysql group and make the program's db group-readable and writeable? Or change the group of the db files and directory to a new group, make them group-readable and writeable, and add yourself to that group. Or make the program's files owned by you but in the mysql group, and make them group-readable and writeable. (I'd probably go with the 3rd way.)


I tried at least to make mysqld use the database without changing its owner like this: ----
mysqld --user adrien --datadir=. &

I'm sure we could get this to work, but I don't think it's the best solution. Better to keep mysql running as mysql, and fix the problem through group permissions.


[1] 6633
[EMAIL PROTECTED]:/home/adrien/c++/mysqltest# Warning: Ignoring user change to 'adrien' because the user was set to 'mysql' earlier on the command line
mysqld: ready for connections.
Version: '4.0.20-log' socket: '/var/run/mysqld/mysqld.sock' port: 0
---
but I cannot use the database:
-----
mysql> use ;
Can't read dir of './dbtest/' (Errcode: 13)
Database changed
mysql> show tables;
ERROR 12: Can't read dir of './dbtest/' (Errcode: 13)
mysql>
-----


Could somebody tell me a better way to use the local database "dbtest" ?

Thanks.
Adrien

Michael


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



Reply via email to