CentOS 下编译安装MySQL

CnetOS 下编译安装 MySql

查看是否存在旧版本:

rpm -qa | grep mysql

卸载旧版本:

rpm -e mysql   #普通删除模式

rpm -e --nodeps mysql   #强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

安装编译代码需要的包

yum -y install make

yum –y install gcc-c++

yum –y install cmake

yum –y install bison-devel

yum –y install ncurses-devel

解压源码:

tar –zxvf mysql-5.5.20.tar.gz

cd mysql-5.5.20

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

加粗部分为必须

参数说明:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql        //安装目录

-DINSTALL_DATADIR=/usr/local/mysql/data         //数据库存放目录

-DDEFAULT_CHARSET=utf8                        //使用utf8字符

-DDEFAULT_COLLATION=utf8_general_ci            //校验字符

-DEXTRA_CHARSETS=all                            //安装所有扩展字符集

-DENABLED_LOCAL_INFILE=1                        //允许从本地导入数据

注意事项:

重新编译时,需要清除旧的对象文件和缓存信息。

# make clean

# rm -f CMakeCache.txt

# rm -rf /etc/my.cnf

查看编译是否正确完成

echo $? #返回0表示正确完成

编译并安装

make && make install

echo $? #查看是否成功安装.

配置mysql

使用下面的命令查看是否有mysql用户及用户组

cat /etc/passwd 查看用户列表

cat /etc/group  查看用户组列表

如果没有就创建

groupadd mysql

useradd -g mysql mysql

配置目录权限

cd /usr/local/lamp/mysql/

chown -R root:mysql . #把当前目录中所有文件的所有者所有者设为root,所属组为mysql

chown -R mysql:mysql data

将mysql的启动服务添加到系统服务中

cp support-files/my-medium.cnf /etc/my.cnf

创建系统数据库的表

cd /usr/local/lamp/mysql

scripts/mysql_install_db

设置环境变量

vi /root/.bash_profile
        在PATH=$PATH:$HOME/bin添加参数为:
        PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
source /root/.bash_profile 生效文件

启动MySQL

cp support-files/mysql.server /etc/init.d/mysqld

chkconfig –add mysqld

service mysqld start  --启动MySQL

修改MySQL的root用户的密码以及打开远程连接

mysql -u root mysql

mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY
"root";  //为root添加远程连接的能力。
mysql>update user set Password = password('xxxxxx') where User='root';
mysql>select Host,User,Password  from
user where User='root';
mysql>flush privileges;
mysql>exit

重新登录:

mysql -u root –p

若还不能进行远程连接,则关闭防火墙

/etc/rc.d/init.d/iptables
stop

新增用户后,出现新用户无法登陆的情况时候,登陆数据库,删除空用户就可以登陆。

delete from user
where user is null;

delete from user
where user='';

FLUSH PRIVILEGES;

上一篇:Python mac安装mysqlclient的一个bug


下一篇:Python: 内置私有方法