my sql permission error
I am trying to run MYSQL. I hae run it successfully in the past, but now I can't get it to run. I have gentoo on AMD64 hardware. I downloaded both the 86_64 and the 686 versions, but I run into the same problems. I install according to the binary install instructions, and mysqld_safe crashes everytime with the below tux.err file:
60807 11:45:08 mysqld started 060807 11:45:08 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... 060807 11:45:08 InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 0 36808. InnoDB: Doing recovery: scanned up to log sequence number 0 43655 060807 11:45:08 InnoDB: Starting an apply batch of log records to the database... InnoDB: Progress in percents: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32$ InnoDB: Apply batch completed 060807 11:45:08 InnoDB: Started; log sequence number 0 43655 060807 11:45:08 [ERROR] bdb: /usr/local/mysql/data: Permission denied 060807 11:45:08 [ERROR] bdb: /usr/local/mysql/data/log.0000000001: Permission denied 060807 11:45:08 [ERROR] bdb: PANIC: Permission denied 060807 11:45:08 [ERROR] bdb: PANIC: DB_RUNRECOVERY: Fatal error, run database recovery 060807 11:45:08 [ERROR] bdb: fatal region error detected; run recovery 060807 11:45:08 [ERROR] bdb: /usr/local/mysql/data: Permission denied 060807 11:45:08 [ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/usr/local/mysql/data/tux.pid' $ 060807 11:45:08 [ERROR] Can't start server: can't create PID file: Permission denied 060807 11:45:08 mysqld ended I checked the permissions on the data directory and they were correct, and I even changed them to 777 hoping that would help. I have seen this problem several times on the forums, but most answers involve installing the software from another repository. |
What user and group owns /usr/local/mysql/? Can you post your my.cnf? also have you ran mysql_install_db --user=mysql?
|
the user and group are mysql. Here is a ls -la from /usr/local/mysql
drwxr-x--- 2 mysql mysql 4096 Aug 7 11:28 . drwxrwxrwx 4 mysql mysql 4096 Aug 7 11:45 .. here is my.cnf # /etc/mysql/my.cnf: The global mysql configuration file. # $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/my.cnf-4.1,v 1.2 2005/07/26 17:14:23 vivo Exp $ # The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /var/run/mysqld/mysqld.sock [mysql] character-sets-dir=latin1 default-character-set=latin1 [mysqladmin] character-sets-dir=latin1 default-character-set=latin1 [mysqlcheck] character-sets-dir=latin1 default-character-set=latin1 [mysqldump] character-sets-dir=latin1 default-character-set=latin1 [mysqlimport] character-sets-dir=latin1 default-character-set=latin1 [mysqlshow] character-sets-dir=latin1 default-character-set=latin1 [myisamchk] character-sets-dir=latin1 [myisampack] character-sets-dir=latin1 # use [safe_mysqld] with mysql-3 [mysqld_safe] err-log = /var/log/mysql/mysql.err # add a section [mysqld-4.1] or [mysqld-5.0] for specific configurations. [mysqld] character-set-server = latin1 default-character-set = latin1 user = mysql port = 3306 socket = /var/run/mysqld/mysqld.sock pid-file = /var/run/mysqld/mysqld.pid log-error = /var/log/mysql/mysqld.err basedir = /usr datadir = /var/lib/mysql skip-locking #skip-innodb key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M language = /usr/share/mysql/english #security: #using "localhost" in connects use sockets by default #skip-networking bind-address = 127.0.0.1 log-bin server-id = 1 # Point the following paths to different dedicated disks tmpdir = /tmp/ #log-update = /path-to-dedicated-directory/hostname # you need debug use flag enabled to use this ones. # if needed uncomment them, start the server and issue # #tail -f /tmp/mysqld.sql /tmp/mysqld.trace # this will show you *exactly* what's appening in your server ;) #log = /tmp/mysqld.sql #gdb #debug = d:t:i:o,/tmp/mysqld.trace #one-thread # Uncomment the following if you are using BDB tables #bdb_cache_size = 4M #bdb_max_lock = 10000 # The following is the InnoDB configuration # if you wish to disable innodb instead # uncomment just the next line #skip-innodb # # the rest of the innodb config follows: # don't eat too much memory, we're trying to be safe on 64Mb boxes. # you might want to bump this up a bit on boxes with more RAM innodb_buffer_pool_size = 16M # this is the default, increase if you have lots of tables innodb_additional_mem_pool_size = 2M # # i'd like to use /var/lib/mysql/innodb, but that is seen as a database :-( # and upstream wants things to be under /var/lib/mysql/, so that's the route # we have to take for the moment #innodb_data_home_dir = /var/lib/mysql/ #innodb_log_arch_dir = /var/lib/mysql/ #innodb_log_group_home_dir = /var/lib/mysql/ # you may wish to change this size to be more suitable for your system # the max is there to avoid run-away growth on your machine innodb_data_file_path = ibdata1:10M:autoextend # we keep this at around 25% of of innodb_buffer_pool_size # sensible values range from 1MB to (1/innodb_log_files_in_group*innodb_buffer_pool_size) innodb_log_file_size = 5M # this is the default, increase if you have very large transactions. innodb_log_buffer_size = 8M # this is the default, and won't hurt you. # you shouldn't need to tweak it. set-variable = innodb_log_files_in_group=2 # see the innodb config docs, the other options are not always safe innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] # Remove the next comment character if you are not familiar with SQL #safe-updates [isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout #vim: set tabstop=4 : #vim: set shiftwidth=4 : Here is the install_binary file excerpt that I followed to install shell> groupadd mysql shell> useradd -g mysql mysql shell> cd /usr/local shell> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf - shell> ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql shell> cd mysql shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data shell> chgrp -R mysql . shell> bin/mysqld_safe --user=mysql & |
What are the permissions for the /var/lib/mysql directory?
|
That directory doesn't exist
|
If you look under section MySQLD you will see that the datadir poits to /var/lib/mysql. Try creating that directory and giving mysql mysql 755 permissions.
|
All times are GMT -5. The time now is 08:11 AM. |