配置yum安装方式
1、配置本地yum源
1 vim /etc/yum.repos.d/rhel-source.repo2 [rhel-source]
3 name=Red Hat Enterprise Linux $releasever - $basearch -Source4 baseurl=file:///mnt5 enabled=1
6 gpgcheck=0
2、清除yum缓存
yum clean all
3、更新yum源
yum update all
yum安装 yum install 软件名
卸载 yum remove 软件名
安装开源mysql ===mysql5.7.10.tar.gz
安装依赖
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools wget
1、卸载rpm mysql软件
# rpm -qa |grep mysql
mysql-libs-5.1.73-3.el6_5.x86_64
# yum remove-y mysql-libs-5.1.73-3.el6_5.x86_64
2、新建用户
# cat /etc/passwd |grep mysql
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
# userdel mysql//删除rpm的用户
useradd-M -s /sbin/nologin mysql
groupadd mysql//添加用户组
useradd-r -g mysql mysql
View Code
3、解压缩
4、配置安装参数
yum -y install cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #安装路径-DMYSQL_DATADIR=/data/mysql/#数据文件存放位置-DSYSCONFDIR=/etc #my.cnf路径-DWITH_MYISAM_STORAGE_ENGINE=1#支持MyIASM引擎-DWITH_INNOBASE_STORAGE_ENGINE=0#支持InnoDB引擎-DWITH_MEMORY_STORAGE_ENGINE=1#支持InnoDB引擎-DWITH_READLINE=1#快捷键功能(我没用过)-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock #连接数据库socket路径-DMYSQL_TCP_PORT=3306#端口-DENABLED_LOCAL_INFILE=1#允许从本地导入数据-DWITH_PARTITION_STORAGE_ENGINE=1#安装支持数据库分区-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk #安装需要的字符集-DDEFAULT_CHARSET=utf8 #默认字符-DDEFAULT_COLLATION=utf8_general_ci #默认字符集-DMYSQL_USER=mysql
参数详解
错误1:error: No curses/termcap
解决办法: # yum install ncurses-devel
5、make 编译
错误2:“../depcomp: line 571: exec: g++: notfound”
解决办法:yum install gcc*
6、make install
错误3:
../include/my_global.h:982: 错误:对 C++内建类型 ‘bool’ 的重声明
make[2]: *** [my_new.o] 错误 1make[2]: Leaving directory `/usr/src/mysql-5.1.49/mysys'make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/usr/src/mysql-5.1.49'make:*** [all] 错误 2解决办法: ./configure加入参数 “--with-unix-socket-path=/tmp/mysql.sock”//指定套接字路径
7、生成mysql的配置文件
# cp support-files/my-medium.cnf /etc/my.cnf
更改配置文件
[root@pythonS1 ~]# vim /etc/my.cnf[client]
default-character-set=utf8
port=3306socket=/data/mysql/mysql.sock[mysqld]
character-set-server=utf8
pid-file = /data/mysql/mysql.pidlog-error=/var/log/mysqld.logdatadir=/data/mysql
basedir=/usr/local/mysql
socket=/data/mysql/mysql.sockuser=mysql
# Disabling symbolic-links is recommended toprevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.logpid-file=/mysql/mysql/mysqld.pid
参照配置
经验之谈
由于navicat连接执行速度慢:加入一句:[mysqld] skip-name-resolve
8、初始化mysql数据库
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql
注意:更改为
# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
之前版本mysql_install_db是在$mysql_basedir/script下,5.7放在了$mysql_basedir/bin目录下,并会在将来被移除,转而使用mysqld替代
- -initialize会生成一个随机密码(保存在~/.mysql_secret),而–initialize-insecure不会生成密码
-–datadir目标目录下不能有数据文件
个人表示不喜欢软连接方式,所以直接启动
/usr/local/mysql/bin/mysqld_safe &
9、修改属主、属组
chown mysql.mysql -R /data/mysql
chmod+x /usr/local/mysql
chown-R :mysql /var/lib/mysql/
环境变量配置
# vi /etc/profile-- 编辑/etc/profile文件在最后添加如下两行 --PATH=/usr/local/mysql/bin:$PATH
export PATH
# source/etc/profile
10、生成mysql控制服务
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld(以后可以使用/etc/init.d/mysqld restart 命令)
# chmod a+x /etc/rc.d/init.d/mysqld
# chkconfig--add /etc/rc.d/init.d/mysqld //添加为系统服务,目的是为了开机自动启动(以后可以使用chkconfig mysqld on命令)
方法
11、启动mysqld服务
# /etc/init.d/mysqld start
netstat-antp | grep mysqld
12、建立mysql命令的软链接
环境变量PATH
echo $ PATH
# ln-s /usr/local/mysql/bin/*/usr/local/bin/
13、保证其他软件(apache、nginx、php)和mysql可以协同工作
# ln -s /usr/local/mysql/lib/mysql/*/usr/local/lib
# ln -s /usr/local/mysql/include/mysql/* /usr/local/include/
14.修改密码:
A.进入配置文件:/etc/my.cnf[mysqld]skip-grant-tables
default_authentication_plugin = mysql_native_password --》mysql8.0的写法
加入这句
B./usr/local/mysql/bin/mysql进入UPDATE user SET password=PASSWORD("newpassword") WHERE user='root';
FLUSHPRIVILEGES;
验证密码是否成功:select user,host,password from mysql.user;
是否有md5值
create databasedb_test;
C.创建一个新用户用于管理 db_test 数据库insert into mysql.user(Host,User,Password)values("localhost","admin",password("newpassword"));
flushprivileges;
D.赋予权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'python123' WITH GRANT OPTION; # 这句是针对本机的, 以后可以使用127.0.0.1, 然后在下面那句grant all privileges on db_test.* to 'user'@'%' identified by 'newpassword'; %在这里表示%:代表0个一个或多个任意字符,也可以是网段,192.168.10.%等注意加引号