查询服务器上已经安装的mysql
rpm -aq | grep mysql
mysql-5.0.77-3.el5
mysql-server-5.0.77-3.el5
libdbi-dbd-mysql-0.8.1a-1.2.2
mysql-connector-odbc-3.51.26r1127-1.el5
mysql-5.0.77-3.el5
卸载旧的版本
rpm -e mysql(对应上面查出来的) --nodeps --allmatches (不理会依赖关系,删除所有上一步查出来的相同的mysql)
将老版本的几个文件手工删除
rm -f /etc/my.cnf
rm -rf /var/lib/mysql
rm -rf/var/share/mysql
rm -rf/usr/bin/mysql*
在目录中 找到源安装包需(cmake-2.8.7.tar.gz mysql-5.5.15.tar.gz)、要先安装cmake
cmake安装方法
tar xf cmake-2.8.7.tar.gz
cd cmake-2.8.7
make install
创建目录
mkdir -p /usr/local/mysql //安装mysql
mkdir -p /usr/local/mysql/data //存放数据库
创建用户及其用户组
groupadd mysql
useradd -r -g mysql mysql
安装mysql
tar -xf mysql-5.5.15.tar.gz
cd mysql-5.5.15
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make -j8
make install
注意事项:
重新编译时,需要清除旧的对象文件和缓存信息。
make clean
rm -f CMakeCache.txt
rm -rf /etc/my.cnf
配置
设置目录权限
cd /usr/local/mysql
chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql。注意mysql后有个空格和点
chown -R mysql:mysql data
将mysql的启动服务添加到系统服务中
cp support-files/my-medium.cnf /etc/my.cnf //my-medium.cnf不仅限于这一个文件
创建系统数据库的表
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql
设置环境变量
将/usr/local/mysql/bin 和对应的mysqllib加入环境变量
例如
vi /etc/profile
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
pathmunge /usr/local/mysql/bin/
fi
source /etc/profile
将mysql添加到系统服务中
cd /usr/local/mysql
cp support-files/mysql.server /etc/init.d/mysql //将mysql的启动服务添加到系统服务中
注意:主要是将mysql.server拷贝到/etc/init.d中,并命名为mysql(有的教程是命名为 mysqld 这个命名关系到下一步的启动和加入开机启动的命令)
启动mysql的方法(mysql已经被添加到系统服务中)
service mysql start //启动mysql服务
service mysql stop //停止mysql服务
service mysql restart //重启mysql服务
修改MySQL的root用户的密码以及打开远程连接
mysql -u root -p
Enter password:
//这里MySQL的root用户还没有配置密码,所以为空值。需要输入密码时,直接点回车键即可
use mysql; //使用mysql这个库
desc user;
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; //添加远程连接
update user set Password = password('123456') where User='root'; //为root用户设置密码:123456
flush privileges;
若还不能进行远程连接,则查看防火墙是否开启
关闭防火墙(重启失效)
/etc/rc.d/init.d/iptables stop
禁用防火墙(永久关闭)
chkconfig iptables off
设置开机启动
chkconfig --level 345 mysql on //设置开机启动(如果你要取消开机启动:把 on 改为 off 就行了)
参考:
https://www.cnblogs.com/zz0412/archive/2013/05/21/mysql.htmlhttps://www.cnblogs.com/zz0412/archive/2013/05/21/mysql.html