商务合作加Q:411239339

Linux中编译安装mysql-5.7.19

浏览:265次阅读
没有评论

共计 2620 个字符,预计需要花费 7 分钟才能阅读完成。


摘要 :本文主要记录了如果在 Linux 中(centos 6.x) 编译安装 mysql-5.7.19,截止到本文时间,当前为最新 mysql 版本。同时记录如果在忘记 mysql 密码的情况下修改其 root 登录密码。


1、准备编译环境

由于最新的 mysql 版本需要 2.8 以上的版本,所以我们除了要安装必要的开发环境外,还得更新 cmake 工具。执行以下命令:

yum groupinstall "Development Tools" -y
yum install cmake -y

2、下载 mysql 源码包

由于最新版本的 mysql 需要 boost 库,我们在官网一并将 boost 库也下载了,下载地址如下:

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.19.tar.gz

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.19.tar.gz

3、编译安装

将下载好的两个源码包放到 /opt 目录下,执行如下命令:

tar zxf mysql-5.7.19.tar.gz
tar zxf mysql-boost-5.7.19.tar.gz
#此时 boost 库也会解压到相同目录 mysql-5.7.19
cd mysql-5.7.19
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1 -DWITH_BOOST=./boost/
make
make install
chown mysql:mysql -R /usr/local/mysql
cd /usr/local/mysql
./bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
cp support-files/mysql.server /etc/init.d/mysql

4、修改 root 密码

# 最简单最粗暴的方法 找到 mysql 的配置文件直接编辑
vim /etc/my.cnf
 # 在 [mysqld] 中加上一行跳过权限限制
skip-grant-tables
# 保存退出 重启 mysql 服务
service mysqld restart
# 用户登录
mysql -uroot -p (直接点击回车,密码为空)
# 选择数据库
use mysql;
# 但是在 5.7 版本中不存在 password 字段,所有我们要用以下修改进行重置密码
update user set authentication_string=password('new password') where user='root';
# 刷新权限
flush privileges;
# 退出 mysql
quit;
# 将最开始修改的配置文件 my.cnf 中的 skip-grant-tables 删除 重启 mysql
service mysqld restart
# 当你登陆 mysql 之后你会发现,当你执行命令时会出现
ERROR 1820 (HY000): You must reset your password using ALTER USER statement;
# 这是提示你需要修改密码 当你执行了
SET PASSWORD = PASSWORD('root');
# 如果出现
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
# 你需要执行两个参数来把 mysql 默认的密码强度的取消了才行 当然也可以把你的密码复杂度提高也行啊
set global validate_password_policy=0;
set global validate_password_mixed_case_count=2;
# 这时你再执行 就 ok 了
SET PASSWORD = PASSWORD('root');
# 下面再说一下 mysql 中的字符集的问题
show variables like "%character%";
# 出现如下情况 可以忽略…………
+--------------------------+----------------------------+
| Variable_name      | Value           |
+--------------------------+----------------------------+
| character_set_client   | utf8            |
| character_set_connection | utf8            |
| character_set_database  | utf8            |
| character_set_filesystem | binary           |
| character_set_results  | utf8            |
| character_set_server   | utf8            |
| character_set_system   | utf8            |
| character_sets_dir    | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
# 找到 mysql 的配置文件 加上几句话就 ok 在 mysqld 下面加上
character-set-server=utf8
collation-server=utf8_general_ci
# 在 client 下面加上
default-character-set=utf

正文完
扫码赞助
post-qrcode
 0
果子
版权声明:本站原创文章,由 果子 于2017-08-14发表,共计2620字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。
评论(没有评论)