lnmp编译安装-(二)-编译安装mysql

安装mysql 5.5.19

  1. 安装常用软件 参考文章
  2. 安装cmake(mysql5.5.19已经采用cmake编译,可通过查找configure.cmake及其他带cmake的文件名辨别出)

        #CMake Dependencies
        yum -y install  curl libarchive expat
        #安装cmake
        tar -zxv -f cmake-2.8.8.tar.gz;
        cd cmake-2.8.8;
        #如果还没有安装CMake(使用下面命令)
        ./bootstrap;make && make install;
    
        #注意:一个已经安装了的CMake也可以用于编译新版本的CMake(使用下面命令)
        #cmake .;make && make install
        #命令汇总:
        tar -zxv -f cmake-2.8.8.tar.gz;cd cmake-2.8.8;./bootstrap;make && make install;
        
  3. 新建一个用于运行mysql的用户

        /usr/sbin/groupadd mysql; /usr/sbin/useradd -g mysql mysql;
        
  4. 解包并编译安装mysql
        tar -zxv -f mysql-5.5.19.tar.gz;
        cd mysql-5.5.19;
        cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
        -DMYSQL_TCP_PORT=3306 \
        -DDEFAULT_CHARSET=utf8 \
        -DDEFAULT_COLLATION=utf8_general_ci \
        -DWITH_EXTRA_CHARSETS:STRING=all \
        -DMYSQL_UNIX_ADDR=/home/mysql/mysqld.sock \
        -DWITH_DEBUG=0 \
        -DWITH_MYISAM_STORAGE_ENGINE=1 \
        -DWITH_INNOBASE_STORAGE_ENGINE=1 \
        -DENABLED_LOCAL_INFILE=1 \
        -DWITH_READLINE=1 \
        -DMYSQL_DATADIR=/home/mysql/data \
        -DSYSCONFDIR=/home/mysql/;
        make && make install;
        #命令汇总:
        tar -zxv -f mysql-5.5.19.tar.gz;cd mysql-5.5.19;cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_TCP_PORT=3306 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DMYSQL_UNIX_ADDR=/home/mysql/mysqld.sock -DWITH_DEBUG=0 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DMYSQL_DATADIR=/home/mysql/data -DSYSCONFDIR=/home/mysql/;make && make install
        # 如果需要更改配置 make clean rm -f CMakeCache.txt
        
    • 配置MySQL编译选项详解
              -DCMAKE_INSTALL_PREFIX #安装路径
              -DMYSQL_TCP_PORT #端口号
              -DDEFAULT_CHARSET #默认使用utf8字符
              -DDEFAULT_COLLATION #校验字符
              -DMYSQL_UNIX_ADDR #连接数据库socket路径
              -DWITH_DEBUG #bool值,表示是否开启debug模式
              -DWITH_MYISAM_STORAGE_ENGINE=1 #安装myisam存储引擎
              -DWITH_INNOBASE_STORAGE_ENGINE=1 #安装innodb存储引擎
              -DENABLED_LOCAL_INFILE=1 #允许从本地导入数据
              -DWITH_READLINE=1 #快捷键功能 -DMYSQL_DATADIR #数据库路径
              -DSYSCONFDIR #MySQL配辑文件(my.cnf存放目录) 其他参数:
              -DWITH_MEMORY_STORAGE_ENGINE=1 #安装memory存储引擎
              -DWITH_FEDERATED_STORAGE_ENGINE=1 #安装frderated存储引擎
              -DWITH_ARCHIVE_STORAGE_ENGINE=1 #安装archive存储引擎
              -DWITH_BLACKHOLE_STORAGE_ENGINE=1 #安装blackhole存储引擎
              -DWITH_PARTITION_STORAGE_ENGINE=1 #安装数据库分区
              -DEXTRA_CHARSETS=all #安装所有扩展字符集
              -DMYSQL_USER=mysql #(默认mysql)MySQL用户名
              -DWITH-EMBEDDED_SERVER=1 #编译成embedded MySQL library (libmysqld.a)
              -DWITH_SSL=yes #SSL
              -DINSTALL_PLUGINDIR=/usr/local/mysql/plugin #插件文件及配置路径
    • 共享lib库文件
              echo '/usr/local/mysql/lib' >> /etc/ld.so.conf;
              ldconfig;
              
  5. 将mysql安装目录的权限赋予mysql用户
        chmod +w /usr/local/mysql;chown -R mysql:mysql /usr/local/mysql;
        
  6. 创建mysql数据库存放目录
        mkdir -p /home/mysql/data;
        chown -R mysql:mysql /home/mysql
        #主从配置版本 日志目录
        mkdir -p /home/mysql/binlog/;
        mkdir -p /home/mysql/relaylog/
        #命令汇总:
        mkdir /home/mysql/{data,binlog,relaylog};chown -R mysql:mysql /home/mysql
        
  7. 以mysql用户帐号的身份建立数据表
        /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql/data --user=mysql
        
  8. MySQL数据库的mysql.server启动与终止脚本
        # cp /usr/local/mysql/support-files/mysql.server /home/mysql/mysqld
        # vim /home/mysql/mysqld
        basedir='/usr/local/mysql'
        datadir='/home/mysql/data'
        
        my.cnf 读取顺序顺序解析: my.cnf 读取顺序: /etc/my.cnf /etc/mysql/my.cnf /var/lib/mysql/my.cnf ~/.my.cnf "$datadir/my.cnf"
        注意:即使有多个不同目录下的my.cnf,mysql只按照读取顺序读取第一个读取到的my.cnf文件,其他cnf文件配置忽略 源代码释疑:
        #mysql.server文件 line:246-256
        
  9. 创建my.cnf配置文件(非主从配置版本)

        #由于某些centos会默认存在/etc/my.cnf,先尝试清除,减少干扰
        rm -fr /etc/my.cnf
        # 复制配置文件(my-medium.cnf复制到data下是有原因的)
        cp /usr/local/mysql/support-files/my-medium.cnf /home/mysql/my.cnf;
        ln -fs /home/mysql/my.cnf /etc/my.cnf
        # 修改my.cnf配置
        vi /home/mysql/my.cnf
        # [mysqld]
        #添加:
        datadir = /home/mysql/data
        log-error = /home/mysql/error.log
        pid-file = /home/mysql/mysql.pid
        #InnoDB实现独立表空间模式
        innodb_file_per_table=1
        #修改
        #二进制日志的目录(更新插入删除操作)
        log-bin=/home/mysql/binlog/mysql-bin
        

    提示:如果是新建数据库,可以直接用 innodb_file_per_table 参数。如果原来数据库已存在,并且是共享表空间模式,那必须通过整体数据迁移来实现,切不可直接把此命令放入配置里面!详情请了解共享表空间和独立表空间的区别

  10. #赋予shell脚本可执行权限并启动mysql
        #两种mysql操作方式
        #1.直接操作源文件
        /home/mysql/mysqld
        Usage: mysqld {start|stop|restart|reload|force-reload|status} reload
        #重新加载my.cnf配置文件
        #2.建立软连接,通过service(服务)开启
        chmod +x /home/mysql/mysqld;
        ln -f -s /home/mysql/mysqld /etc/init.d/mysqld;
        service mysqld restart
        
  11. mysql启动后检测是否正确加载my.cnf
        [root@localhost data] ps -aux | grep mysql
        #/bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/home/mysql/data --pid-file=/home/mysql/mysql.pid
        #/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/home/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/home/mysql/error.log --pid-file=/home/mysql/mysql.pid --socket=/home/mysql/mysqld.sock --port=3306
        

    对比一下–pid-file,–log-error是否和设置一样,不一样代表没有加载上此my.cnf,那可以按照my.cnf文件读取顺序查找和删除干扰my.conf文件

  12. #
     chown -R mysql:mysql /home/mysql
  13. 通过命令行登录管理mysql服务器(提示输入密码时直接回车,缺省的mysql的root用户无密码)

        #通过命令行登录管理MySQL服务器(提示输入密码时直接回车):
        /usr/local/mysql/bin/mysql -u root -p -S /home/mysql/mysqld.sock
        #或者
        /usr/local/mysql/bin/mysql -u root -p
        #查看所有用户
        mysql>use mysql;
        mysql>select Host,User,Password from user;
        #默认保留 root@localhost和root@127.0.0.1
        #为root帐户设置初始密码
        /usr/local/mysql/bin/mysqladmin -u root password root
        #或命令行修改root密码:
        mysql> UPDATE mysql.user SET password=PASSWORD('root') WHERE User='root';
        mysql> FLUSH PRIVILEGES;
        #删除多余的用户
        mysql>delete from user where user="";
        mysql>delete from user where Host="::1";
        #输入以下SQL语句,创建一个具有root权限的用户(admin)和密码(admin)
        #grant(授予) all(全部权限) on *.*(所有表)
        mysql>GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
        #其他操作
        mysql>flush privileges;
        mysql>exit; //退出
        #授权法(推荐方法)。
        #例如,你想myuser使用mypassword从任何主机连接到mysql服务器的
        #[1]如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
        mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.2.100' IDENTIFIED BY 'mypassword';
        #[2]允许地址202.11.10.253上用root用户,密码mypassword来连接mysql的所有数据库(on *.*),付给select,insert,update,delete权限。
        mysql>grant select,insert,update,delete on *.* to 'root'@"202.11.10.253" Identified by "mypassword";
        #[4]允许地址202.11.10.253上用root用户,密码mypassword来连接mysql的所有数据库,付给所有权限。
        mysql>grant all on *.* to 'root'@"202.11.10.253" Identified by "mypassword"
        
相关文章
  1. php-redis扩展
  2. Gearman-PHP扩展源码编译
  3. Zend Opcache 加速 PHP
  4. php安装memcached扩展
  5. php下添加pdo_mysql扩展
  6. Nginx使用的php-fpm的两种进程管理方式及优化
本站版权
1、本站所有主题由该文章作者发表,该文章作者与尘埃享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和尘埃的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:
二维码
Posted in lnmp源码安装, mysql, 数据库技术
Comments are closed.