阅读更多
很早就想把自己曾经做过的东西和在操作系统安装过的东西记录一下,一直没有时间,今天正好有空,先把自己在linux安装mysql的过程记录一下,便于以后查看.
环境:centos5.4
mysql版本:mysql-5.0.18.tar.gz
安装过程如下:
[root@localhost root]#tar -xvf mysql-3.23.53.tar.gz
解压之后进入该文件夹:
[root@localhost root]#cd mysql
建立mysql用户和mysql组:
[root@localhost root]#groupadd mysql
[root@localhost root]#useradd –g mysql mysql
在这里建立一个mysql用户和组的目的是:要给mysql数据库一个启动的用户和组,这样可以不用以管理员(root)的身份去启动mysql,大大的提高了服务器的安全。
然后给mysql用户设置一个密码:
[root@localhost root]#passwd mysql
然后编译mysql,目的是为mysql设置一些参数选项:
[root@localhost root]#
./configure --prefix=/usr/tools/mysql --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_unicode_ci
①——prefix选项意思是:把文件安装在后面参数的目录里面。
②——without-debug 选项意思是:关闭调试选项。
③——with-extracharsets=gb2312 选项意思是:安装扩展字符为gb2312。
④——enable-assember 选项意思是:使用一些字符函数的汇编版本。
⑤——with-mysqld-ldflags 选项意思是:以纯静态方式编译服务端和客户端。
开始执行make:
[root@localhost root]#make
[root@localhost root]#make install
完成后进入scripts目录执行:
[root@localhost root]#./scripts/mysql_install_db
[root@localhost root]#cp support-files/my-medium.cnf /etc/my.cnf
[root@localhost root]#cp support-files/mysql.server /etc/init.d/mysqld
完成配置文件和启动文件的复制后,执行修改文件权限的命令:
[root@localhost root]#chmod 700 /etc/init.d/mysqld
[root@localhost root]#cd /usr/tools/mysql
[root@localhost root]#chown -R root mysql
[root@localhost root]#chown -R mysql mysql/var
[root@localhost root]#chgrp -R mysql mysql
权限修改完毕后,复制启动文件,修改启动选项:
[root@localhost root]#chkconfig --add mysqld
[root@localhost root]#chkconfig --level 345 mysqld on
[root@localhost root]#service mysqld start
提示:如果在编译过程中出现
checking for tgetent in -ltermcap… no
checking for termcap functions library… configure: error: No curses/termcap library found
下载 ncurses-5.7.tar.gz
并源码安装之(静态库版)
tar xvfz ncurses-5.7.tar.gz
./configure --prefix=/home/nemo/ncurses
make && make install
并源码安装之(动态库版)
./configure --prefix=/home/nemo/ncurses -–with-shared –-without-debug
make && make install
设置添加安装路径到环境变量 /home/nemo/ncurses
方法如下:
导到登陆用户的根目录(这里我用的是root,所以它的根目录是~),
cd ~
使用 ls –la | more 查看到一个.profile.bash文件
Vi profile.bash文件
在$PATH 后添加 : /home/nemo/ncurses安装路径
然后退出重新登陆,通过env查看环境变量下$PATH是否添加进去
然后在重新编译mysql
./configure --prefix=/usr/tools/mysql --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_unicode_ci
如果还是出现上述错误,则需要安装一个依赖包
ncurses-devel-5.5-24.20060715.i386.rpm
安装依赖包
rpm -ivh /software(这个是我存放这个软件包的目录)/ncurses-devel-5.5-24.20060715.i386.rpm
安装完成后
在进入mysql目录进行编译mysql
./configure --prefix=/usr/tools/mysql --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_unicode_ci
应该就不会有什么问题了
接下来将mysql安装目录的bin目录放到系统的环境变量当中,便于直接登录系统后可以直接使用 mysql -uroot(用户名) -pxxx(密码)登录到系统
找到mysql安装目录: /usr/tools/mysql/bin
通过 vi /etc/profile
在PATH=$JAVA_HOME/bin:$PATH后添加 mysql的目录路径
PATH=$JAVA_HOME/bin:$PATH:/usr/tools/mysql/bin
然后退出系统重新登陆
查看env
PATH=/usr/java/jdk1.6.0_19/bin
:/usr/tools/mysql/bin/
然后就可以使用 msyql -uroot -pxxx 登陆一下你的mysql后台
注:修改mysql密码的方法
mysql -u用户名 -p密码
mysql> use mysql; 使用mysql database
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='用户名';
mysql> FLUSH PRIVILEGES;
mysql> QUIT
最新出现了在启动数据库时,报一个错误
Starting MySQL.The server quit without updating PID file (/[FAILED]l/mysql/var/localhost.localdomain.pid).
解决办法:
#cd /usr/local/mysql(进入mysql安装目录)
#chown -R mysql:mysql .
$scripts/mysql_install_db 重新初始化一下数据库表结构,出错之前的数据库表结构不会丢失,这个可以确保
最后在重启mysql数据库
service mysql start
后续,由于后续安装新的版本,发现新的版本和老的版本有些诧异,自己在网上找了一下,感觉这个文章介绍的比较详细,也比较清楚,所以,将操作步骤记录下来,以备后续使用。
一:卸载旧版本
使用下面的命令检查是否安装有MySQL Server
代码如下:
rpm -qa | grep mysql
有的话通过下面的命令来卸载掉
代码如下:
rpm -e mysql //普通删除模式
rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
安装MySQL
安装编译代码需要的包
代码如下:
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
下载MySQL 5.6.19
tar xvf mysql-5.6.19.tar.gz
cd mysql-5.6.19
或者使用 wget url 在线下载文件
编译安装
代码如下:
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install
编译的参数可以参考http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html。
整个过程需要30分钟左右……漫长的等待
三:配置MySQL
设置权限
使用下面的命令查看是否有mysql用户及用户组
代码如下:
cat /etc/passwd 查看用户列表
cat /etc/group 查看用户组列表
如果没有就创建
代码如下:
groupadd mysql
useradd -g mysql mysql
修改/usr/local/mysql权限
代码如下:
chown -R mysql:mysql /usr/local/mysql
修改/usr/local/mysql权限
初始化配置
进入安装路径
代码如下:
cd /usr/local/mysql
进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表
代码如下:
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
启动MySQL
添加服务,拷贝服务脚本到init.d目录,并设置开机启动
代码如下:
cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start --启动MySQL
配置用户
MySQL启动成功后,root默认没有密码,我们需要设置root密码。
设置之前,我们需要先设置PATH,要不不能直接调用mysql
修改/etc/profile文件,在文件末尾添加
复制代码
代码如下:
PATH=/usr/local/mysql/bin:$PATH
export PATH
关闭文件,运行下面的命令,让配置立即生效
复制代码
代码如下:
source /etc/profile
现在,我们可以在终端内直接输入mysql进入,mysql的环境了
执行下面的命令修改root密码
复制代码
代码如下:
mysql -uroot
mysql> SET PASSWORD = PASSWORD('123456');
若要设置root用户可以远程访问,执行
复制代码
代码如下:
mysql> GRANT ALL PRIVILEGES ON *.* TO
'root'@'172.16.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
红色的password为远程访问时,root用户的密码,可以和本地不同。
配置防火墙
防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口
打开/etc/sysconfig/iptables
在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:
复制代码
代码如下:
-A INPUT m state --state NEW m tcp p dport 3306 j ACCEPT
然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:
复制代码
代码如下:
service iptables restart