在CentOS系统上通过源码安装MySQL,通常需要以下几个步骤:
1、基础准备:
创建MySQL用户和组。
安装必要的依赖包,如gcc、make、cmake等。
下载MySQL的源码包。
2、编译安装:
解压源码包并进入解压后的目录。
使用cmake进行配置,指定安装路径、数据目录等参数。
执行make命令进行编译,然后执行make install进行安装。
3、配置:
修改相关目录的权限,确保MySQL用户有正确的读写权限。
编辑my.cnf配置文件,设置数据库的相关参数。
初始化数据库,生成初始的系统数据库和用户。
4、启动服务:
将MySQL设置为开机自启动。
启动MySQL服务,并检查其运行状态。
以下是详细的步骤和代码示例:
基础准备
1、创建MySQL用户和组:
groupadd r g 27 mysql useradd s /sbin/nologin r u 27 g 27 d /data/mysql mysql
2、安装必要依赖包:
yum y install wget gcc gccc++ cmake ncursesdevel zlibdevel bzip2 perlDataDumper boost boostdoc boostdevel epelrelease
3、下载MySQL源码包:
cd /opt wget https://dev.mysql.com/get/Downloads/MySQL5.7/mysql5.7.33el7x86_64.tar.gz wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL5.7/mysqlboost5.7.33.tar.gz
编译安装
1、解压源码包:
tar zxvf mysql5.7.33el7x86_64.tar.gz mv mysqlboost5.7.33 mysql5.7.33el7x86_64/boost
2、配置:
cd mysql5.7.33el7x86_64 cmake . DDOWNLOAD_BOOST=1 DCMAKE_INSTALL_PREFIX=/usr/local/mysql DMYSQL_DATADIR=/data/mysql DSYSCONFDIR=/etc DWITH_BOOST=boost
3、编译和安装:
make j4 && make install
配置
1、修改目录权限:
chown R root:mysql /usr/local/mysql/ chown R mysql:mysql /data/mysql
2、编辑my.cnf配置文件:
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock user = mysql basedir = /usr/local/mysql datadir = /data/mysql/data pidfile = /data/mysql/data/mysql.pid log_error = /data/mysql/data/mysqlerror.log slow_query_log = 1 long_query_time = 1 slow_query_log_file = /data/mysql/data/mysqlslow.log skipexternallocking key_buffer_size = 32M max_allowed_packet = 1024M table_open_cache = 128 sort_buffer_size = 768K net_buffer_length = 8K read_buffer_size = 768K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M thread_cache_size = 16 query_cache_size = 16M tmp_table_size = 32M performance_schema_max_table_instances = 1000 explicit_defaults_for_timestamp = true max_connections = 500 max_connect_errors = 100 open_files_limit = 65535 log_bin=mysqlbin binlog_format=mixed server_id = 232 expire_logs_days = 10 earlypluginload = "" default_storage_engine = InnoDB innodb_file_per_table = 1 innodb_buffer_pool_size = 128M innodb_log_file_size = 32M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50
3、初始化数据库:
cd /usr/local/mysql/bin ./mysqld initializeinsecure user=mysql basedir=/usr/local/mysql datadir=/data/mysql/data
启动服务
1、设置开机自启动:
cp /usr/local/mysql/supportfiles/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig add mysqld chkconfig mysqld on service mysqld start
2、测试连接:
/usr/local/mysql/bin/mysql uroot p
FAQs
问题1:为什么需要创建MySQL用户和组?
答:创建MySQL用户和组是为了保证数据库的安全,通过为MySQL分配独立的用户和组,可以限制对数据库文件的访问权限,只有MySQL用户和组的成员才能访问这些文件,这有助于防止未经授权的访问和潜在的安全威胁。
问题2:为什么需要指定数据目录和安装路径?
答:指定数据目录是为了让MySQL知道在哪里存储数据库文件和日志文件,而指定安装路径则是为了让MySQL知道它的可执行文件、库文件和其他资源文件应该安装在哪里,这些路径可以根据系统的实际情况和个人偏好来选择,但必须确保它们存在且有足够的空间来存储所需的文件。