摘要:本文主要记录了如果在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
- 微信扫码赞助
- 支付宝赞助