Hi, Actually your last problem might be that the .cnf file you put in place points to a different data directory, or empty directory.
--Justin On Tue, Feb 24, 2015 at 11:18 PM, Justin Swanhart <[email protected]> wrote: > Hi, > > You've asked a lot of questions, so I feel it is best to reply inline. > > On Tue, Feb 24, 2015 at 10:35 PM, Peter Boston < > [email protected]> wrote: > >> I am new to use mariadb on linux machine. I am using Fedora 20 and I have >> downloaded the mariadb 10.0.15 tar.gz file and its instruction. I removed >> the existing mariadb from my Fedora 20. I have installed the mariadb on my >> machine by following the official instruction. It seems successful (without >> error) but I cannot start it as expected. I also have few other basic >> questions. >> >> >> >> Some background information here: this database will be accessed by a >> local application. This local application may be running under a general >> user account, user1. I installed it in /var/local as a root user. >> >> >> >> Questions: >> >> >> >> 1. How to uninstall it completely? I want to try again to see >> if I did anything wrong before. >> > You can remove all of the mariadb RPM files at once with the following > command > sudo yum --remove mariadb\* > OR > sudo rpm --erase $(rpm -qa mariadb\*) > > This might leave behind some files. In particular, /var/log/mysqld.log > might be a symlink to another location, so: > rm -rf /var/log/mysqld* /var/log/mariadb* > > There might be a /etc/my.cnf from mariadb. It /should/ be compatible with > other versions of MySQL including MariaDB > >> >> >> 2. Because it will be accessed by a local application and the >> local application will be running by a general user, user1, should I >> install it with user1? >> > Normally MySQL runs as the 'mysql' user. It starts mysqld as root because > it binds to a low port (3306), then switches to mysql. You can have it > switch to any user you like by putting user=username in the [mysqld] > section of the my.cnf, the default is user=mysql > > >> >> 3. Basically I am confused with these three users: user1, >> mysql and root. >> >> “user1” will be used to run the application and login the >> machine. “mysql” will be used to connect the mariadb. “root” will be used >> to install mariadb into /usr/local. Who will start the mariadb? It will be >> “root”, I guess. But if “root” starts the service, “user1” and “mysql” >> don’t have problem to access its resources? >> > See the answer to my previous question. > > >> >> 4. If I don't want to install it as root, can I still install >> it under the /usr/local directory? >> > Only root can write to /usr/local (unless you have permissions different > from default) so you must install the software as root to create files in > /usr/local. When you install the database use: > sudo mysql_install_db --user=username > Again, the default username is mysql. This will ensure the data directory > is owned by the mysql user, or whichever user you specified on the > commandline. If you specify a user other than mysql, you MUST add > user=username to the [mysqld] section of my.cnf > > >> >> 5. I renamed the my-large.cnf to .my.cnf and uncomment the >> InnoDB table section. Is this only change I need to make if I want to use >> InnoDB? should I disable the myisam? how? >> > You can not disable MyISAM. Just leave it at the defaults. > >> >> >> 6. where should I put the .my.cnf file? put into the home >> directory of the user who starts the mariadb or the user who logon the >> system if they are different? >> > You can place a my.cnf directory in the data directory, start mysql with: > sudo mysqld_safe --defaults-file=/path/to/other/my.cnf & > >> >> >> 7. there is a my.cnf file from the Fedora 20 installation, >> when I start mariadb without the "--defaults-file=~/.my.cnf" option, I will >> get the following error from the log: >> >> [ERROR] mysqld: Can't create/write to file >> '/var/run/mysqld/mysqld.pid' (Errcode: 2 "No such file or directory") >> >> I have to manually create the mysqld folder inside the >> /var/run folder each time after reboot. how to avoid this? >> > Var run is cleaned at each reboot. Either create /var/run/mysqld at > startup (rc.local?) or use pidfile=/path/to/pidfile in the [mysqld_safe] > section of my.cnf > >> >> >> 8. After started with that "old" my.cnf, I try to stop the >> mariadb but cannot because I cannot find its service name: >> >> >> >> [user1@dev2 mysql]$ ./bin/mysqladmin -u root -p status >> >> Enter password: >> >> Uptime: 685 Threads: 1 Questions: 3 Slow queries: 0 >> Opens: 0 Flush tables: 1 Open tables: 62 Queries per second avg: 0.004 >> >> [user1@dev2 mysql]$ sudo systemctl status mariadb.service >> >> mariadb.service >> >> Loaded: not-found (Reason: No such file or directory) >> >> Active: inactive (dead) >> >> >> >> [user1@dev2 mysql]$ sudo systemctl status mysql.service >> >> mysql.service >> >> Loaded: not-found (Reason: No such file or directory) >> >> Active: inactive (dead) >> >> >> >> [user1@dev2 mysql]$ sudo systemctl status mysqld.service >> >> mysqld.service >> >> Loaded: not-found (Reason: No such file or directory) >> >> Active: inactive (dead) >> >> >> >> how stop it? >> > The tarball can't create services. You can either copy the service file > from the /usr/local/mysql/share directory to /etc/rc.d (I am not sure how > this works on systemd, actually, but I think it will) and use the service > command. You can always just start mysql with mysqld_safe, and shut it > down by either sending the KILL signal to mysql (killall mysqld, for > example) or you can shut it down with the command: > mysqladmin -uroot -ppassword shutdown > > >> >> 9. if I start mariadb with the renamed my-large.cnf ([root@dev2 >> mysql]# ./bin/mysqld_safe --defaults-file=~/.my.cnf --user=mysql), I got >> the following error: >> >> >> >> 150225 0:09:28 [ERROR] Can't open the mysql.plugin >> table. Please run mysql_upgrade to create it. >> >> 150225 0:09:28 [Note] Recovering after a crash using >> mysql-bin >> >> 150225 0:09:28 [Note] Starting crash recovery... >> >> 150225 0:09:28 [Note] Crash recovery finished. >> >> 150225 0:09:28 [Warning] Failed to load slave >> replication state from table mysql.gtid_slave_pos: 1146: Table >> 'mysql.gtid_slave_pos' doesn't exist >> >> 150225 0:09:28 [ERROR] Can't open and lock privilege >> tables: Table 'mysql.servers' doesn't exist >> >> 150225 0:09:28 [Note] Server socket created on IP: '::'. >> >> 150225 0:09:28 [ERROR] Fatal error: Can't open and lock >> privilege tables: Table 'mysql.user' doesn't exist >> >> 150225 00:09:28 mysqld_safe mysqld from pid file >> /usr/local/mysql/data/dev2.pid ended >> > I don't think you ran mysql_install_db ? > > >> >> >> >> >> Then I try do upgrade as suggested above: >> >> >> >> [root@dev2 mysql]# ./bin/mysql_upgrade >> >> Version check failed. Got the following error when >> calling the 'mysql' command line client >> >> ERROR 2002 (HY000): Can't connect to local MySQL server >> through socket '/tmp/mysql.sock' (2 "No such file or directory") >> >> FATAL ERROR: Upgrade failed >> >> >> >> so I think I need to make the mariadb running first, I >> use above 7 to make server running and then do upgrade, I got the following >> errors: >> >> >> >> [user1@dev2 mariadb-10.0.15-linux-x86_64]$ sudo >> ./bin/mysql_upgrade >> >> [sudo] password for user1: >> >> Phase 1/5: Checking mysql database >> >> Processing databases >> >> mysql >> >> mysql.column_stats OK >> >> mysql.columns_priv OK >> >> mysql.db OK >> >> mysql.event OK >> >> mysql.func OK >> >> mysql.gtid_slave_pos >> >> Error : Table 'mysql.gtid_slave_pos' doesn't exist in >> engine >> >> status : Operation failed >> >> mysql.help_category OK >> >> mysql.help_keyword OK >> >> mysql.help_relation OK >> >> mysql.help_topic OK >> >> mysql.host OK >> >> mysql.index_stats OK >> >> mysql.innodb_index_stats >> >> Error : Table 'mysql.innodb_index_stats' doesn't exist >> in engine >> >> status : Operation failed >> >> mysql.innodb_table_stats >> >> Error : Table 'mysql.innodb_table_stats' doesn't exist >> in engine >> >> status : Operation failed >> >> mysql.plugin OK >> >> mysql.proc OK >> >> mysql.procs_priv OK >> >> mysql.proxies_priv OK >> >> mysql.roles_mapping OK >> >> mysql.servers OK >> >> mysql.table_stats OK >> >> mysql.tables_priv OK >> >> mysql.time_zone OK >> >> mysql.time_zone_leap_second OK >> >> mysql.time_zone_name OK >> >> mysql.time_zone_transition OK >> >> mysql.time_zone_transition_type >> OK >> >> mysql.user >> OK >> >> >> >> >> >> Repairing >> tables >> >> >> >> mysql.gtid_slave_pos >> >> >> Error : Table 'mysql.gtid_slave_pos' doesn't exist in >> engine >> >> status : Operation failed >> >> >> >> mysql.innodb_index_stats >> >> >> Error : Table 'mysql.innodb_index_stats' doesn't exist >> in engine >> >> status : Operation failed >> >> mysql.innodb_table_stats >> >> Error : Table 'mysql.innodb_table_stats' doesn't exist >> in engine >> >> status : Operation failed >> >> Phase 2/5: Running 'mysql_fix_privilege_tables'... >> >> ERROR 1932 (42S02) at line 580: Table >> 'mysql.innodb_index_stats' doesn't exist in engine >> >> ERROR 1932 (42S02) at line 583: Table >> 'mysql.innodb_table_stats' doesn't exist in engine >> >> FATAL ERROR: Upgrade failed >> >> >> >> >> >> why I cannot run mariadb with the my.cnf which comes with >> this version of mariadb? The old my.cnf doesn't have innoDB section and I >> cannot enable it. Is this the reason? does the Fedora 20 support mariadb >> 10.0.15? >> > I don't think you used the mysql_install_db from mariadb 10. Try clearing > the data directory and running mysql_install_db. > > >> >> >> Thanks, >> >> >> >> Peter >> >> _______________________________________________ >> Mailing list: https://launchpad.net/~maria-discuss >> Post to : [email protected] >> Unsubscribe : https://launchpad.net/~maria-discuss >> More help : https://help.launchpad.net/ListHelp >> >> >
_______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp

