CentOS6.9安装MySQL
Linux安装MySQL的4种方式:
1. 二进制方式
特点:不需要安装,解压即可使用,不能定制功能
2. 编译安装
特点:可定制,安装慢
5.5之前: ./configure make make install
5.6之后: cmake gmake
3. rpm,yum
特点:安装方便,安装速度快,无法定制
4. 先编译,然后制作rpm,制作yum源,然后yum安装
特点:简单,速度快,可定制,比较复杂,制作时间长
企业选择:
中小企业:以上方式都可以,运维偏向编译安装,dba偏向选择二进制
大型企业:选择第四种
二进制安装步骤:
环境准备
Linux系统,这里以CentOS6.9作为演示
mysql安装包:mysql-5.7.19-linux-glibc2.5-x86_64.tar.gz
安装
解压mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz,并拷贝到/application/mysql-5.7.24目录下
mkdir -p /tools mkdir -p /application cd /tools tar -zxf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.24-linux-glibc2.12-x86_64 /application/mysql-5.7.24 ln -s /application/mysql-5.7.24 /application/mysql5.7
添加mysql 用户
useradd -s /sbin/nologin -M mysql # 提前创建安装目录 mkdir -p /application/mysql-5.7.24
修改mysql工作目录权限
chown -R mysql.mysql /application/mysql-5.7.24 /application/mysql5.7
安装mysql
cd /application/mysql5.7 ./bin/mysqld --initialize --user=mysql --basedir=/application/mysql5.7 --datadir=/application/mysql5.7/data # 执行完上诉命令,输出的信息中存在mysql的登录密码。(最后一行的最后一串字符就是密码)
将mysql启动命令复制到系统文件中
cp /application/mysql5.7/support-files/mysql.server /etc/init.d/mysqld
将mysql的启动文件路径加入到系统环境变量中
echo "PATH=/application/mysql5.7/bin:$PATH" >> /etc/profile . /etc/profile # 让/etc/profile文件生效
配置mysql配置文件
# 编辑配置文件 vim /etc/my.cnf ************************以下为配置,直接复制粘贴*************************** [mysql] socket=/application/mysql5.7/data/mysql.sock [mysqld] port=3306 socket=/application/mysql5.7/data/mysql.sock basedir=/application/mysql5.7 datadir=/application/mysql5.7/data
启动mysql服务
/etc/init.d/mysqld start
登录mysql服务
mysql -u root -p密码 # 密码是第4步中的内容
最后登录成功的界面
修改密码
alter user user() identified by "新密码";
到这里二进制安装就结束了
编译安装步骤:
环境准备
Linux系统,这里以CentOS6.9作为演示
mysql安装包:mysql-5.6.37.tar.gz(后面步骤中有详细的地址)
安装
安装依赖包
yum install -y ncurses-devel libaio-devel gcc gcc-c++
安装cmake,编译器
yum install cmake -y
创建用户,供运行mysql使用
useradd -s /sbin/nologin -M mysql # 提前创建安装目录 mkdir -p /application/mysql-5.6.36
下载安装包
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37.tar.gz
解包
tar -zxvf mysql-5.6.37.tar.gz # 进入对应的目录中 cd mysql-5.6-37
编译
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 \ -DMYSQL_DATADIR=/application/mysql-5.6.36/data \ -DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITH_ZLIB=bundled \ -DWITH_SSL=bundled \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLE_DOWNLOADS=1 \ -DWITH_DEBUG=0 make && make install *******************************参数含义***************************** cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.37 \ # 指定安装目录,类似window选择目录安装软件,默认最后一级目录系统自动创建。 -DMYSQL_DATADIR=/application/mysql-5.6.37/data \ # 指定数据目录,一般都是跟随安装下 -DMYSQL_UNIX_ADDR=/application/mysql-5.6.37/tmp/mysql.sock \ # 指定sock文件位置 -DDEFAULT_CHARSET=utf8 \ # 字符编码 -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ # 启用该引擎的支持。语法为:-DWITH_<ENGINE>_STORAGE_ENGINE=1 禁用语法为:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 \ # 同上 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ # 同上 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ # 同上 -DWITH_ZLIB=bundled \ -DWITH_SSL=bundled \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLE_DOWNLOADS=1 \ -DWITH_DEBUG=0 make && make install # make 开始编译,make install 安装 **********************常见的编译参数************************* -DMYSQL_USER=mysql # 设置mysql服务的用户,必须真实存在 -DMYSQL_TCP_PORT=3306 # 设置mysql服务的端口,默认为3306
更多编译请参考官方文档:https://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html#option_cmake_storage_engine_options
创建软连接
ln -s /application/mysql-5.6.37 /application/mysql5.6
修改安装目录的权限
chmod +w /application/mysql-5.6.37 chmod +w /application/mysql5.6 chown -R mysql:mysql /application/mysql5.6 chown -R mysql:mysql /application/mysql-5.6.37
复制配置文件到Linux系统目录下,并在/etc/my.cnf文件中添加如下内容
cd /application/mysql-5.6.37 cp -f support-files/my-default.cnf /etc/my.cnf # 在/etc/my.cnf中添加如下内容: -----------------------------/etc/my.cnf内容------------------------ [mysql] socket=/application/mysql5.6/data/mysql.sock [mysqld] port=3306 socket=/application/mysql5.6/data/mysql.sock basedir=/application/mysql5.6 datadir=/application/mysql5.6/data -------------------------------------------------------------------
执行初始化配置脚本,创建系统自带的数据库和表,注意配置文件的路径
cd /application/mysql5.6/scripts/ ./mysql_install_db --defaults-file=/etc/my.cnf --basedir=/application/mysql5.6 --datadir=/application/mysql5.6/data --user=mysql # --defaults-file 指定mysql的配置文件 # --basedir 指定mysql工作目录 # --datadir 指定mysql数据目录 # -user 指定mysql软件运行的用户
将mysql启动文件拷贝到系统目录下(类似windows把软件的启动程序,拷贝到了桌面,有利于快速启动)
cd /application/mysql5.6 cp support-files/mysql.server /etc/init.d/mysqld
授权mysqld文件执行权限
chmod +x /etc/init.d/mysqld
设置开机自启动(根据自身爱好进行设置)
chkconfig mysqld on
启动msyql服务
/etc/init.d/mysqld start
把mysql服务的路径添加到环境变量中
echo "PATH=/application/mysql5.6/bin:$PATH" >> /etc/profile . /etc/profile # 让/etc/profile文件生效
设置mysql登录的密码
/application/mysql5.6/bin/mysqladmin -u root password '新密码' -S /application/mysql5.6/data/mysql.sock
登录mysql服务
mysql -uroot -p新密码 # 注意-p后面直接接密码,不要空格
登录成功后的界面如图