maria-discuss team mailing list archive
-
maria-discuss team
-
Mailing list archive
-
Message #02302
Re: questions from a new user
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 <greenlion@xxxxxxxxx>
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 <
> peterboston1212@xxxxxxxxxxx> 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 : maria-discuss@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~maria-discuss
>> More help : https://help.launchpad.net/ListHelp
>>
>>
>
References