linux安装mysql数据库
很早就想把自己曾经做过的东西和在操作系统安装过的东西记录一下,一直没有时间,今天正好有空,先把自己在linux安装mysql的过程记录一下,便于以后查看.
环境:centos5.4
mysql版本:mysql-5.0.18.tar.gz
安装过程如下:
[root@localhostroot]#tar-xvfmysql-3.23.53.tar.gz
解压之后进入该文件夹:
[root@localhostroot]#cdmysql
建立mysql用户和mysql组:
[root@localhostroot]#groupaddmysql
[root@localhostroot]#useradd–gmysqlmysql
在这里建立一个mysql用户和组的目的是:要给mysql数据库一个启动的用户和组,这样可以不用以管理员(root)的身份去启动mysql,大大的提高了服务器的安全。
然后给mysql用户设置一个密码:
[root@localhostroot]#passwdmysql
然后编译mysql,目的是为mysql设置一些参数选项:
[root@localhostroot]#
./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@localhostroot]#make
[root@localhostroot]#makeinstall
完成后进入scripts目录执行:
[root@localhostroot]#./scripts/mysql_install_db
[root@localhostroot]#cpsupport-files/my-medium.cnf/etc/my.cnf
[root@localhostroot]#cpsupport-files/mysql.server/etc/init.d/mysqld
完成配置文件和启动文件的复制后,执行修改文件权限的命令:
[root@localhostroot]#chmod700/etc/init.d/mysqld
[root@localhostroot]#cd/usr/tools/mysql
[root@localhostroot]#chown-Rrootmysql
[root@localhostroot]#chown-Rmysqlmysql/var
[root@localhostroot]#chgrp-Rmysqlmysql
权限修改完毕后,复制启动文件,修改启动选项:
[root@localhostroot]#chkconfig--addmysqld
[root@localhostroot]#chkconfig--level345mysqldon
[root@localhostroot]#servicemysqldstart
提示:如果在编译过程中出现
checkingfortgetentin-ltermcap…no
checkingfortermcapfunctionslibrary…configure:error:Nocurses/termcaplibraryfound
下载ncurses-5.7.tar.gz
并源码安装之(静态库版)
tarxvfzncurses-5.7.tar.gz
./configure--prefix=/home/nemo/ncurses
make&&makeinstall
并源码安装之(动态库版)
./configure--prefix=/home/nemo/ncurses-–with-shared–-without-debug
make&&makeinstall
设置添加安装路径到环境变量/home/nemo/ncurses
方法如下:
导到登陆用户的根目录(这里我用的是root,所以它的根目录是~),
cd~
使用ls–la|more查看到一个.profile.bash文件
Viprofile.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>usemysql;使用mysqldatabase
mysql>UPDATEuserSETpassword=PASSWORD("newpassword")WHEREuser='用户名';
mysql>FLUSHPRIVILEGES;
mysql>QUIT
最新出现了在启动数据库时,报一个错误
StartingMySQL.TheserverquitwithoutupdatingPIDfile(/[FAILED]l/mysql/var/localhost.localdomain.pid).
解决办法:
#cd/usr/local/mysql(进入mysql安装目录)
#chown-Rmysql:mysql.
$scripts/mysql_install_db重新初始化一下数据库表结构,出错之前的数据库表结构不会丢失,这个可以确保
最后在重启mysql数据库
servicemysqlstart
后续,由于后续安装新的版本,发现新的版本和老的版本有些诧异,自己在网上找了一下,感觉这个文章介绍的比较详细,也比较清楚,所以,将操作步骤记录下来,以备后续使用。
一:卸载旧版本
使用下面的命令检查是否安装有MySQLServer
代码如下:
rpm-qa|grepmysql
有的话通过下面的命令来卸载掉
代码如下:
rpm-emysql//普通删除模式
rpm-e--nodepsmysql//强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
安装MySQL
安装编译代码需要的包
代码如下:
yum-yinstallmakegcc-c++cmakebison-develncurses-devel
下载MySQL5.6.19
tarxvfmysql-5.6.19.tar.gz
cdmysql-5.6.19
或者使用wgeturl在线下载文件
编译安装
代码如下:
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&&makeinstall
编译的参数可以参考http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html。
整个过程需要30分钟左右……漫长的等待
三:配置MySQL
设置权限
使用下面的命令查看是否有mysql用户及用户组
代码如下:
cat/etc/passwd查看用户列表
cat/etc/group查看用户组列表
如果没有就创建
代码如下:
groupaddmysql
useradd-gmysqlmysql
修改/usr/local/mysql权限
代码如下:
chown-Rmysql: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的配置文件的默认位置!注意:在CentOS6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
启动MySQL
添加服务,拷贝服务脚本到init.d目录,并设置开机启动
代码如下:
cpsupport-files/mysql.server/etc/init.d/mysql
chkconfigmysqlon
servicemysqlstart--启动MySQL
配置用户
MySQL启动成功后,root默认没有密码,我们需要设置root密码。
设置之前,我们需要先设置PATH,要不不能直接调用mysql
修改/etc/profile文件,在文件末尾添加
复制代码
代码如下:
PATH=/usr/local/mysql/bin:$PATH
exportPATH
关闭文件,运行下面的命令,让配置立即生效
复制代码
代码如下:
source/etc/profile
现在,我们可以在终端内直接输入mysql进入,mysql的环境了
执行下面的命令修改root密码
复制代码
代码如下:
mysql-uroot
mysql>SETPASSWORD=PASSWORD('123456');
若要设置root用户可以远程访问,执行
复制代码
代码如下:
mysql>GRANTALLPRIVILEGESON*.*TO<ahref="mailto:'root'@'172.16.%'">'root'@'172.16.%'</a>IDENTIFIEDBY'password'WITHGRANTOPTION;
红色的password为远程访问时,root用户的密码,可以和本地不同。
配置防火墙
防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口
打开/etc/sysconfig/iptables
在“-AINPUT–mstate--stateNEW–mtcp–p–dport22–jACCEPT”,下添加:
复制代码
代码如下:
-AINPUTmstate--stateNEWmtcppdport3306jACCEPT
然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:
复制代码
代码如下:
serviceiptablesrestart