Very often people not expert ask me some simple detailed directions on how to install MySQL from fresh.
The following is a simple one that if you will follow step by step should give you a MySQL working installation.
this articule assume that you have the possibility to attach different storage for:
System and binaries
MySQLData
MySQLLogs
Prerequisite:
1) You need to have access to the client area for download the MySQL software from somwere possible points are: www.mysql.com www.askmonty.org www.percona.com
2) Perl DBI and DBD::mysql installed on the machine (See How to Install MySQL Perl module guide)
3) Root privileges
Steps:
1) Install the Perl modules
2) Create a directory layout as follow:
/mysql_data/
|-- data
| |-- mysql
| `-- test
`-- lost+found
/mysql_logs/
|-- exports
|
`-- logs
|-- Q_MySQL
|-- binlog
|-- general
|-- innodb
`-- relay
3) Create a directory for the MySQL binary in:
/usr/local/mysqldistributions
4) Expand the downloaded file (MySQL server binary installation) into the mysqldistributions directory
5) Create the symbolic link to /usr/local/mysql
6) Copy the file from /usr/local/mysql/support-files/mysql.server to /etc/init.d/ as mysql
7) Register it chkconfig –-add mysql
8) Create in /etc/ the file my.cnf and modify the server-id with a unique value
9) Create the group and user mysql
groupadd mysql
seradd -g mysql –s /bin/bash –p mysql
10) Change the permissions on all the relevant directories:
chown –R mysql:mysql /mysql_logs
chown –R mysql:mysql /mysql_data
chown –R mysql:mysql /usr/local/mysql*
11) Impersonate the user mysql su –l mysql
12) Run the script to initialize the mysql database
./scripts/./mysql_install_db --basedir=/usr/local/mysql --datadir=/mysql_data/data
13) Check that the directories are created and the permissions correctly set:
ll /mysql_data/data
14) Open another terminal window to check the log
15) Become root again
16) Start the MySQL server with
/etc/init.d/mysql start
17) On the opened terminal type:
tail -fn200 /mysql_data/data/.err to check what is going on
18) On the original terminal, go inside the mysql server using the local
mysql console: /usr/local/mysql/bin/mysql –uroot
19)Check for anonymous user to remove
root@localhost:mysql.sock [(none)]> select user,host from mysql.user;
+------+------------+
| user | host |
+------+------------+
| root | 127.0.0.1 |
| | localhost |
| root | localhost |
| | |
| root | |
+------+------------+
5 rows in set (0.00 sec)
and remove them:
root@localhost:mysql.sock [(none)]> drop user ''@localhost;
root@localhost:mysql.sock [(none)]> drop user ''@’machinename’;
Add the Password for the user root for *ANY* hosts:
set password for root@localhost=Password('mysql');
set password for root@’machinename’=Password('mysql');set password for root@’127.0.0.1’=Password('mysql');
20) Exit and try if all was done correctly:
root@localhost:mysql.sock [(none)]> exit
Bye
[root@xx mysql]# /usr/local/mysql/bin/mysql -uroot -pmysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.31sp1-enterprise-gpl-pro-log MySQL Enterprise Server - Pro Edition (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
root@localhost:mysql.sock [(none)]>
21)Now add al the other user as you like
{joscommentenable}