mysql在linux上的安装过程
第一步:
使用uname -a命令查看机器是32位还是64位的,然后在到mysq的官网下载相关的安装包,现在的安装包主要是rpm格式的,直接安装就可以了,不需要配置相关的路径,在这里,我主要介绍一下我使用的源码安装包的安装过程。
第二步:
创建mysql用户组和mysql用户并配置权限(注意需要root权限哦)
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql *
chgrp -R mysql *
这里也可以在home目录下创建mysql目录,并且在home目录使用命令指定用户登入时的启动目录(可选),如下
usermod -d /home/mysql mysql
再使用passwd对mysql用户设定密码
第三步:
解压编译好的源码安装包到/data/目录下
tar -zxvf mysql-5.5.24-linux2.6-x86_64.tar.gz
mv mysql-5.5.24-linux2.6-x86_64/* /data/mysql
并使用硬链接到/usr/local/mysql
ln -s /data/mysql/ /usr/local/mysql
第四步:
安装数据初始文件,例如test,mysql等数据库默认实在安装目录的data文件夹中
cd /data/mysql
scripts/mysql_install_db --user=mysql
cp support-files/my-medium.cnf /etc/my.cnf
cp bin/mysql* /usr/bin/
第五步:
启动mysql数据库
mysqld_safe --user=mysql &
这样就完成了mysql数据库的安装过程,可以看一看mysql里自带的几个数据库了
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec)
第六步:
创建自己的用户名和密码
mysql -Ns -e"grant all on *.* to 'username'@localhost identified by 'password'"
使用该用户名进入
mysql -uusername -ppassword
这样就可以使用自己的用户名创建数据库和建表等操作了
我遇到的一个问题:
路径/tmp/的权限导致在执行scripts/mysql_install_db --user=mysql操作时总是失败,后来使用chmod 777 /tmp就可以了
下面附上一个自动安装脚本:
使用方法:将mysql的源码安装包放到/data目录下,使用root用户执行
<span style="background-color: rgb(255, 255, 255);">#!/bin/bash
# 要求用户将mysql的安装文件放在/data目录下
# iflow.sql用于创建数据库的sql文件
# 验证当前环境,主要是检查安装文件是否存在
check_env()
{
cd /data
# 先查看mysql安装包是否存在
ls mysql*.tar.gz > /dev/null 2>&1
if(($?!=0))
then
echo "no mysql-install file"
exit
fi
mysql_install_file=`ls mysql*.tar.gz`
# 确保只有一个安装文件
file_num=`echo $mysql_install_file | awk '{print NF}'`
if((file_num > 1))
then
echo "mysql-install file more than 1"
exit
fi
# 如果本机已经安装了mysql,要把对应的文件给删除掉
# 待完成
}
# check using root
check_user()
{
username=`whoami`
if [ "$username" != "root" ]
then
echo "please change to root"
exit
fi
}
# install mysql to path(best to /data/mysql)
install_mysql()
{
# 先停掉正在运行的mysql
mysqladmin shutdown > /dev/null 2>&1
install_path="/data/mysql"
# 解压安装文件,然后把压缩目录修改为/data/mysql
tar zxvf $mysql_install_file
path_tem=`echo $mysql_install_file | awk -F'.tar.gz' '{print $1}'`
# 删除原有的解压文件,原有的目录太长,太丑了
mv $path_tem $install_path
# 开始在安装目录进行相应的配置
cd $install_path
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql *
chgrp -R mysql *
if [ -e "/usr/local/mysql" ]
then
echo "rm and create new /usr/local/mysql"
rm -rf /usr/local/mysql
fi
ln -s $install_path /usr/local/mysql
# 安装数据初始文件,例如test,mysql等数据库默认是在安装目录的data文件夹里面
scripts/mysql_install_db --user=mysql
cp support-files/my-medium.cnf /etc/my.cnf
cp bin/mysql* /usr/bin/
# 启动服务
# /usr/bin/mysqld_safe --user=mysql &
# 关闭服务
# /usr/local/mysql/bin/mysqladmin shutdown
}
# start mysql
start_mysql()
{
mysqld_safe --user=mysql &
times=1
while ((1))
do
sleep 5
mysql -Ns -e"show databases;" > /dev/null 2>&1
if(($?==0))
then
break
else
((times++))
fi
if((times ==3))
then
# 如果尝试三次仍然不能启动mysql,就去日志里面查看原因,日志的路径为$install_path/date
log_name=`uname -a | awk '{print $2}'`
echo "start mysql error,please check $install_path/date/${log_name}.err"
exit
fi
done
cd /data
if [ ! -e "iflow.sql" ]
then
echo "/data/iflow.sql not exist"
exit
fi
# 先进入mysql进行对应的设置
# 执行iflow.sql创建iflow数据库和表
mysql -Ns -e"source /data/iflow.sql"
echo "start mysql success"
}
# create user
create_db_user()
{
mysql -Ns -e"grant all on *.* to 'iflow'@localhost identified by ''"
mysql -Ns -e"grant all on *.* to 'iflow_web'@localhost identified by 'iflow_2013'"
}
main()
{
check_env
check_user
install_mysql
start_mysql
create_db_user
}
main
</span>