Installing MySQL on Solaris

                                                       Installing MySQL on  Solaris

Author: Jeff Hunter, ReWrited, Compiled by Lin Gang{[email protected]}

Overview

    The following article provides the steps necessary to successfully install the binary version of MySQL, release 3.23, on Solaris 2.8 and higher. These procedures should work as well on versions of Solaris as early as version 2.6.

    I typically install MySQL in /usr/local/mysql as the UNIX root account. I then create a UNIX mysql account that will have access to manage databases.

    Once you've installed MySQL, you will need to initialize the grant tables, start the server, and make sure that the server works okay. You may also elect to arrange for the server to be started and stopped automatically when your system starts up and shuts down.

    Installing the grant tables is accomplished by running the mysql_install_db script. This creates the mysql database which will hold all database privileges, the test database which you can use to test MySQL, and also privilege entries for the user that run mysql_install_db and a root user (without any passwords).

Operating System Account

    Create MySQL User Account:

  % groupadd -g 116 mysql
  % useradd -u 174 -c "MySQL Software Owner" /
      -d /u01/app/mysql -g "mysql" -m -s /bin/bash mysql
  % passwd mysql

    Create MySQL UserID:

  % mkdir /u01
  % mkdir /u01/app
  % mkdir /u01/app/mysql
  % chown -R mysql:mysql /u01/app/mysql
   

Uncompress / Installing Binary Version of MySQL

    NOTE: Because of a bug in Solaris tar, Solaris users should use gnu tar to unpack archives.

  % su -
  % cp mysql-3.23.54-sun-solaris2.8-sparc.tar /usr/local
  % cd /usr/local
  % gunzip mysql-3.23.54-sun-solaris2.8-sparc.tar.gz
  % gtar xvf mysql-3.23.54-sun-solaris2.8-sparc.tar
  % ln -s mysql-3.23.54-sun-solaris2.8-sparc mysql
  % cd mysql
  % scripts/mysql_install_db
  % chown -R root .
  % chown -R mysql data
  % chgrp -R mysql .

Starting and Stopping the MySQL Database Software

    Starting the MySQL Database

  % bin/safe_mysqld --user=mysql &

    Stopping the MySQL Database

  % bin/mysqladmin -u root shutdown

Testing the Installation

    Ensure that the MySQL Software, the mysqld server, is running and you have set up the initial MySQL grant tables containing the privileges that determine how users are allowed to connect to the server. This is normally done with the mysql_install_db script.

  * Using mysqladmin

  % mysqladmin ping
  mysqld is alive

  % mysqladmin version
  mysqladmin  Ver 8.23 Distrib 3.23.54, for pc-linux on i686
  Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
  This software comes with ABSOLUTELY NO WARRANTY. This is free software,
  and you are welcome to modify and redistribute it under the GPL license

  Server version          3.23.54
  Protocol version        10
  Connection              Localhost via UNIX socket
  UNIX socket             /tmp/mysql.sock
  Uptime:                 59 min 45 sec

  Threads: 1  Questions: 2  Slow queries: 0
  Opens: 6  Flush tables: 1  Open tables: 0
  Queries per second avg: 0.001

  * Ensure you can shutdown and startup the server

          Starting the MySQL Database

  % bin/safe_mysqld --user=mysql &

          Stopping the MySQL Database

  % bin/mysqladmin -u root shutdown

  or you can do like this:
 
  To start or stop the server manually using the mysql.server script, invoke it with start or stop arguments:
 
  shell> mysql.server start
  shell> mysql.server stop


  * Try several simple tests

  % mysqlshow
  +-----------+
  | Databases |
  +-----------+
  | mysql     |
  | test      |
  +-----------+

  % mysqlshow -u root mysql
  Database: mysql
  +--------------+
  |    Tables    |
  +--------------+
  | columns_priv |
  | db           |
  | func         |
  | host         |
  | tables_priv  |
  | user         |
  +--------------+

  % mysql -u root -e "select host, db, user from db" mysql
  +------+---------+------+
  | host | db      | user |
  +------+---------+------+
  | %    | test    |      |
  | %    | test/_% |      |
  +------+---------+------+

 % mysql -u root mysql
  Reading table information for completion of table and column names
  You can turn off this feature to get a quicker startup with -A

  Welcome to the MySQL monitor.  Commands end with ; or /g.
  Your MySQL connection id is 15 to server version: 3.23.54

  Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

  mysql> select host, db, user from db;
  +------+---------+------+
  | host | db      | user |
  +------+---------+------+
  | %    | test    |      |
  | %    | test/_% |      |
  +------+---------+------+
  2 rows in set (0.00 sec)

Configuration Files / Scripts

    Example:
        .bash_profile

        $HOME/.bash_profile for the "mysql" user account.

Let MySQL runing automatically when system boot.

    % cp /usr/local/mysql/support-files/mysql.server /etc/init.d/
    % ln -s /etc/init.d/mysql.server /etc/rc3.d/S98mysql
    
    this will ensure that mysqld runing at boot time, make sure S##mysql the number should larger than the number of network services.
   

Use remote connection to use MySQL:

  1、create a new user xuys:
  Format: grant RIGHTS on DATABASENAME.TABLENAME USER@HOSTNAME identified by "PASSWORD";
  grant select,update,insert,delete on *.* to [email protected] identified by "xuys1234";
     see result, use:
     use mysql;
     select host,user,password from user;
     we noticed that table "user" already has the user named xuys. host field indicate the hostname, it can be hostname or ip.
     modify host field into % means any host which has user xuys can log into mysql Server, % is recommended during the development period. 
     update user set host = '%' where user = 'xuys';
 
  2、 ./mysqladmin -uroot -ppwd reload
  ./mysqladmin -uroot -ppwd shutdown
 
  3、./mysqld_safe --user=root &
  Remember: any revise to the talble need reload to take effect, i.e. the third step.
 
  if it does not work even after above three steps, please use below, insert a record into db table:
  use mysql;
  insert into db values('192.168.88.234','%','xuys','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
  update db set host = '%' where user = 'xuys';
  and repeat above two steps.
 
  meanwhile, you can add new users by GRANTstatement:

  shell> mysql --user=root mysql
  mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
             IDENTIFIED BY 'something' WITH GRANT OPTION;
  mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
             IDENTIFIED BY 'something' WITH GRANT OPTION;
  mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
  mysql> GRANT USAGE ON *.* TO dummy@localhost;
 
  Now, we can use Aqua DataStudio to connect to MySQL Database:
 
  1. obtain AQUA from http://www.aquafold.com/downloads.html;
  2. install.
  3. Server|Register Server|General:
     RDBMS: MYSQL
     NAME: Lonshot MySQL database
     TYPE: DEVELOPMENT
     LOG IN NAME: sql    
     PASSWORD:    ********
     CONNECT AS:  NORMAL
     HOST:        11.11.11.11
     Database:         mysql
   
     click OK
  4. select Schema, right click mysql, select Query Analyzer.you can put sql statement now
  
References:

1.http://nnn.isblog.org/more.asp?name=sxysxy&id=72
2.http://www.linuxforum.net/books/mysqlmanual/manual_Privilege_system.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章