Linux下源码安装Mysql5.6
一、 创建用户和组
// 创建用户,设置归属组
groupadd mysql
useradd -r -g mysql mysql
二、创建目录
// 安装目录自定义
mkdir -p /opt/mysql
mkdir -p /opt/mysql/data
mkdir -p /opt/mysql/log
三、安装插件
// 下载安装依赖
yum -y install gcc gcc-c++ autoconf bison cmake automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*
注:离线安装需要准备上面列出的依赖包:rpm -Uvh --force --nodeps .rpm
四、编译
// 一字不漏的执行,安装目录按照实际情况修改。
cmake \
-DCMAKE_INSTALL_PREFIX=/opt/mysql \
-DMYSQL_DATADIR=/opt/mysql/data \
-DSYSCONFDIR=/opt/mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/opt/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
五、 安装
// 执行此命令开始安装
make && make install
六、授权
// 设置文件所属者和授权
chown -R mysql:mysql /opt/mysql
chmod -R 775 /opt /mysql
七、创建系统自带的数据库和表
// 进到安装目录执行
cd /opt/mysql
scripts/mysql_install_db --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql --defaults-file=/opt/mysql/my.cnf --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp
// 如果报错:“--explicit_defaults_for_timestamp”,执行下面的语句
scripts/mysql_install_db --basedir=/opt/mysql --datadir=/opt/mysql/data --innodb_undo_tablespaces=3 --user=mysql --explicit_defaults_for_timestamp
// 移动配置文件到 etc下
mv /usr/local/mysql/my.cnf /etc/my.cnf
注意:从一台服务器物理拷贝整个数据库到另一台服务器记得修改auto.conf文件中的UUID
八、配置mysql开机自启
// 配置开机自启
cp /opt/mysql/mysql-5.6.42/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig mysql on
service mysql start
九、配置环境变量
// 添加环境变量
vim /etc/profile
// 添加以下参数
export PATH=/usr/local/mysql/bin:$PATH
// 立即生效
source /etc/profile
十、修改root密码
// root密码默认为空,添加密码
mysql -uroot
SET PASSWORD = PASSWORD('root');
十一、默认拒绝远程连接,开启 root 用户远程连接
// An highlighted block
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
------拓展------
选择要操作的数据库
use mysql
查询 root 用户 登录方式
select user,host from user where user='root';
创建数据库备份用户
grant reload,lock tables,replication client,create tablespace,super on *.* to 'backup'@'%' identified by 'backup';