对于linux的软件安装,常见有三种方式:rpm安装、源码安装、二进制包安装。可以参考 Linux二进制包\源代码包\rpm包区别。源代码包里面包括了程序原始的程序代码,需要在你的计算机上进行编译以后才可以产生可以运行程序,所以从源代码安装的时间会比较长。二进制包里面包括了已经经过编译,可以马上运行的程序。你只需要下载和解包(安装)它们以后,就马上可以使用。其中源码安装从MySQL5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。
1.安装依赖库和cmake
CMake是一个比make更高级的跨平台的安装(编译)工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
yum -y install gcc-c++ ncurses-devel wget --no-check-certificate https://cmake.org/files/v2.8/cmake-2.8.12.tar.gz tar zxvf cmake-2.8.12.tar.gz cd cmake-2.8.12 ./configure gmake&&gmake install
2.添加用户并编译安装mysql
useradd mysql -s /sbin/nologin -M cd && wget --no-check-certificate https://mirrors.163.com/mysql/Downloads/MySQL-5.5/mysql-5.5.61.tar.gz tar xf mysql-5.5.61.tar.gz cd mysql-5.5.61 cmake . --DCMAKE_INSTALL_PREFIX=/usr/local/mysql --DMYSQL_DATADIR=/usr/local/mysql/data --DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock --DDEFAULT_CHARSET=utf8 --DDEFAULT_COLLATION=utf8_general_ci --DENABLED_LOCAL_INFILE=ON --DWITH_INNOBASE_STORAGE_ENGINE=1 --DWITH_FEDERATED_STORAGE_ENGINE=1 --DWITH_BLACKHOLE_STORAGE_ENGINE=1 --DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 --DWITH_FAST_MUTEXES=1 --DWITH_ZLIB=bundled --DENABLED_LOCAL_INFILE=1 --DWITH_READLINE=1 --DWITH_EMBEDDED_SERVER=1 --DWITH_DEBUG=0 . make&&make install
编译参数多而复杂,如果是正式生成环境安装MySQL,需要认真选择这些参数,可以参考官方编译参数帮助文档
3.目录授权、配置为系统服务、设开机启动、修改环境变量
chown -R mysql.mysql /usr/local/mysql/ /bin/cp support-files/my-large.cnf /etc/my.cnf cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld echo 'export PATH=/usr/local/mysql/bin:$PATH'>>/etc/profile source /etc/profile
4.初始化、设置表名大小写不敏感
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql vim /etc/my.cnf #在[mysqld]下加入如下内容(默认为0,即表名大小写敏感): lower_case_table_names=1
5.修改root密码、设置允许远程登陆
此时mysql启动后,输入mysql命令后无需密码敲回车就可以登陆的。
service mysqld start mysql -u root -p use mysql; update user set password=password('123456') where user='root'; update user set host='%' where user='root' && host='127.0.0.1'; flush privileges; quit
转载请注明:零五宝典 » Linux平台安装mysql(源码编译)5.5.59