标签:
通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库
[root@CentOS6.5 ~]# rpm -qa | grep mysql #这个命令就会查看该操作系统上是否已经安装了mysql数据库
有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉
[root@CentOS6.5 ~]# rpm -e mysql #普通删除模式
[root@CentOS6.5 ~]# rpm -e --nodeps mysql #强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
在删除完以后我们可以通过 rpm -qa | grep mysql 命令来查看mysql是否已经卸载成功!
1、安装编译源码所需的工具和库
yum install gcc gcc-c++ ncurses-devel perl
2、安装cmake,从http://www.cmake.org下载源码并编译安装
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap ; make ; make install
1、新增mysql用户组
groupadd mysql
2、新增mysql用户
useradd -r -g mysql mysql
1、新建mysql安装目录
mkdir -p /usr/local/mysql
2、新建mysql数据库数据文件目录
mkdir -p /data/mysqldb
从http://dev.mysql.com/downloads/mysql/直接下载源码
wget http://www.kakapart.com/files/mysql-5.6.16.tar.gz
tar -zxv -f mysql-5.6.16.tar.gz
cd mysql-5.6.16
1、从mysql5.5起,mysql源码安装开始使用cmake了,设置源码编译配置脚本。
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysqldb \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1
DCMAKE_INSTALL_PREFIX=dir_name |
设置mysql安装目录 |
-DMYSQL_UNIX_ADDR=file_name |
设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock |
-DDEFAULT_CHARSET=charset_name |
设置服务器的字符集。 缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列表。 |
-DDEFAULT_COLLATION=collation_name |
设置服务器的排序规则。 |
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 |
存储引擎选项:
MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema) |
-DMYSQL_DATADIR=dir_name |
设置mysql数据库文件目录 |
-DMYSQL_TCP_PORT=port_num |
设置mysql服务器监听端口,默认为3306 |
-DENABLE_DOWNLOADS=bool |
是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。 |
注:重新运行配置,需要删除CMakeCache.txt文件
rm CMakeCache.txt
1、修改mysql安装目录
cd /usr/local/mysql
chown -R mysql:mysql . #注意后面的小数点,表示当前目录,不能省略。
2、修改mysql数据库文件目录
cd /data/mysqldb
chown -R mysql:mysql . #注意后面的小数点
[root@lcj mysql]# pwd /usr/local/mysql [root@lcj mysql]# chown -R mysql:mysql . [root@lcj mysql]# cd /data/mysqldb/ [root@lcj mysqldb]# chown -R mysql:mysql . [root@lcj mysqldb]#
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
初始化mysql时,如果机器名不能进行反解会出现如下错误
[root@lcj mysql]# scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb WARNING: The host ‘lcj‘ could not be looked up with ./bin/resolveip. This probably means that your libc libraries are not 100 % compatible with this binary MySQL version. The MySQL daemon, mysqld, should work normally with the exception that host name resolving will not work. This means that you should use IP addresses instead of hostnames when specifying MySQL privileges ! Installing MySQL system tables...2016-07-28 08:41:24 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
解决方式:
查看/etc/hosts文件中是否有响应的机器名,如无则添加本机的IP到机器的对应到/etc/hosts文件中
使用resolveip确认是否ok
[root@lcj mysql]# /usr/local/mysql/bin/resolve resolveip resolve_stack_dump [root@lcj mysql]# /usr/local/mysql/bin/resolveip lcj IP address of lcj is 192.168.232.132 [root@lcj mysql]#
再次对mysql进行初始化:
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf #注:如果/etc/my.cnf文件存在则覆盖
cp support-files/mysql.server /etc/init.d/mysqld
vi /etc/profile
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
source /etc/profile #使用环境变量生效
chown -R mysql:mysql . #注意后面的小数点
service mysqld start
chkconfig --level 35 mysqld on
netstat -tulnp | grep 3306
mysql -u root -p #密码为空,如果能登陆上,则安装成功。
mysqladmin -u root password ‘123456‘
注:也可运行安全设置脚本,修改MySQL用户root的密码,同时可禁止root远程连接,移除test数据库和匿名用户。
/usr/local/mysql/bin/mysql_secure_installation
标签:
原文地址:http://www.cnblogs.com/lcj0703/p/5726451.html