首页 >数据库 >mysql教程 >聊聊mysql的cmake方式

聊聊mysql的cmake方式

藏色散人
藏色散人转载
2021-10-19 16:28:242614浏览

本篇文章带大家简析下mysql的安装cmake方式,介绍一下cmake方式的一些知识,希望对大家有所帮助!

一般分为以下几种

yum
rpm包
常规编译安装
cmake安装
二进制包免安装

如何选择

个人使用yum或rpm包安装

企业使用多用常规编译和cmake及二进制包免安装

数量少的话
5.1.x版本选择使用常规编译安装
5.5.x版本选择使用cmake方式编译安装

数量多的话
直接使用二进制包免安装

首先查看系统环境

[root@localhost ~]# cat /etc/redhat-release 
CentOS release 6.5 (Final)
[root@localhost ~]# uname -r
2.6.32-431.el6.x86_64
[root@localhost ~]# uname -m
x86_64

在安装cmake软件,需要安装gcc和gcc-c++

yum -y install gcc

yum -y install gcc-c++

编译安装完cmake后,需要安装依赖包

yum install ncurses-devel -y

记住先要安装用户和组
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd mysql -s /sbin/nologin -M -g mysql

依赖包安装完后,cd进入mysql的目录进行cmake操作

cmake -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \
-DMYSQL_DATADIR=/application/mysql-5.5.32/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0 \


-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \           貌似因为64位主机编译不过去!!!
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all "
执行成功返回下面代码

Build files have been written to: /root/lamp/mysql-5.5.32

make && install
安装完成

[100%] Built target my_safe_process #此处make完成
....
....
....
-- Installing: /application/mysql-5.5.32/support-files/solaris/postinstall-solaris #此处make install 完成

建立link

ln -s /application/mysql-5.5.32/ application/mysql

建立my.cnf

[root@localhost /]# cp /application/mysql-5.5.32/support-files/my-small.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y

配置环境变量

echo 'export PATH=/application/mysql/bin:$PATH' >> /etc/profile
tail -l /etc/profile
source /etc/profile
echo $PATH

给mysql用户和mysql用户组授权

chown -R mysql.mysql /application/mysql/data/

chmod -R 1777 /tmp/

初始化db脚本,假如有两个ok,就证明成功

[root@localhost /]# cd /application/mysql/scripts/
[root@localhost scripts]# ./mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK

修改hosts文件

vim /etc/hosts

加入www

加入mysqld脚本

cp /root/lamp/mysql-5.5.32/support-files/mysql.server /etc/init.d/mysqld

加入mysqld脚本执行权限

chmod +x /etc/init.d/mysqld

执行mysqld运行

[root@localhost scripts]# /etc/init.d/mysqld start
Starting MySQL...                                        [确定]
[root@localhost scripts]# netstat -lntup | grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      2671/mysqld

进入mysql服务器,如果之前配置了环境变量了,就可以执行mysql命令

mysql

删除空用户
mysql> select user,host from mysql.user;
user host
+------+-----------------------+
root 127.0.0.1
root ::1

localhost
root localhost

localhost.localdomain
root localhost.localdomain

6 rows in set (0.00 sec)

mysql> delete from mysql.user where user ='';
Query OK, 2 rows affected (0.09 sec)

mysql> select user,host from mysql.user;
user host
+------+-----------------------+
root 127.0.0.1
root ::1
root localhost
root localhost.localdomain

4 rows in set (0.00 sec)

mysql>

授权system管理员

mysql> grant all privileges on . to system@'localhost' identified by 'longjq' with grant option;
Query OK, 0 rows affected (0.00 sec)

修改mysql密码

/application/mysql//bin/mysqladmin -u root password '123456'
/application/mysql//bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

加入启动管理

[root@localhost scripts]# chkconfig --list mysqld
mysqld             0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭`

故障排除

登录不了mysql?删除文件,重新初始化

# mysql
access denied for user 'localhost'......
# pkill mysqld
# lsof -i :3306
# rm -fr /application/mysql/data/*
# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql

字符集错误?

[root@localhost scripts]# cat /etc/sysconfig/i18n 
#LANG="zh_CN.GB18030"#这里改成zh_CN.UTF-8
LANG="zh_CN.UTF-8"

推荐学习:《mysql视频教程

以上是聊聊mysql的cmake方式的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:segmentfault.com。如有侵权,请联系admin@php.cn删除