mysql5.7应该还是生产用的最多的版本,最近对比了yum、rpm、tar、源码安装,发现还是源码安装最稳,心里踏实的一比,以下安装基于centos7.6 x64,基础优化关闭selinux、防火墙等基本操作。
0、linux基础优化 卸载已有的mysql或mariadb-lib
/bin/rpm -e $(/bin/rpm -qa | grep mysql|xargs) --nodeps /bin/rpm -e $(/bin/rpm -qa | grep mariadb|xargs) --nodeps1、官网下载带boost版本源码包 https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.30.tar.gz 2、安装依赖包
yum install -y libaio cmake yum install -y gcc-c++ bison-devel ncurses-devel bison perl perl-devel perl perl-devel3、安装 创建一个资源目录把 MySQL 安装包 上传到这个目录下
mkdir /usr/local/resource解压安装包
tar -xf mysql-boost5.7.30.tar.gz添加mysql组及用户
groupadd mysql useradd -r -g mysql mysql新建MySQL的安装目录
mkdir -p /usr/local/mysql新建MySQL的数据存储目录
mkdir -p /data/mysql编译安装 进入解压的目录
cd /usr/local/resource/mysql-5.7.30cmake编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DWITH_BOOST=boost -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/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_cimake编译,耗时比较长,耐心等待
makemake安装
make install设置权限
chown -R mysql:mysql /usr/local/mysql chown -R mysql /data/mysql初始化MySQL
cd /usr/local/mysql/bin ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/ --initialize初始化完成,并给root用户生成了临时密码,这里要把密码记录下来,稍后需要 复制mysql服务启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld启动MySQL服务
service mysqld start提示错误
mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.这个是因为centos7自带了mariadb-lib库, 方法一、执行最开始的删除操作就好了 --推荐
/bin/rpm -e $(/bin/rpm -qa | grep mariadb|xargs) --nodeps方法二、创建提示缺少的目录和文件,并授权 --不推荐
mkdir -p /var/log/mariadb touch /var/log/mariadb/mariadb.log chown -R mysql:mysql /var/log/mariadb/提示错误
mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.解决办法:
mkdir -p /var/lib/mysql chown -R mysql:mysql /var/lib/mysql再次启动,检查service mysqld status为SUCCESS! MySQL running就正常启动了
登录
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql mysql -u root -p输入刚刚的密码 登录成功 修改MySQL用户root的密码为root
mysql> set password for root@localhost = password('123456');赋予权限并设置可以远程访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;刷新权限
mysql> FLUSH PRIVILEGES;远程测试连接
修改参数
mysql -u root -p123456 show global variables like '%lower_case%'; | Variable_name | Value | +------------------------+-------+ | lower_case_file_system | OFF | # 文件系统大小写敏感,这个改不了 | lower_case_table_names | 0 | # 默认表名大小写敏感 +------------------------+-------+源码安装的没有配置文件,自己创建一个,只写入需修改的参数就好了
vi /etc/my.cnf [mysqld] #表名大小写不敏感 lower_case_table_names=1 #最大连接数 max_connections=1000重启服务
service mysqld restart mysql -u root -p123456 show global variables like '%lower_case%'; | Variable_name | Value | +------------------------+-------+ | lower_case_file_system | OFF | | lower_case_table_names | 1 | +------------------------+-------+ mysql> show variables like '%max_connections%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 1000 | +-----------------+-------+修改成功!
启停命令: 启动
service mysqld start重启
service mysqld restart停止
service mysqld stop