LAMP环境源码安装③mysql源码安装及初始化
安装mysql的一个依赖软件,在Debian和Ubuntu中叫做libncurses5-dev,在Redhat等其他系统叫做ncurses-devel。
mysql安装:使用比configure更先进的cmake方法,需要首先安装cmake命令,使用rpm包或yum安装都可以
cd命令进入mysql源码包的解压缩之后的文件夹,然后使用cmake命令:
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_MYISAM_STORAGE_ENGINE :编译myisam存储引擎,默认的存储引擎,不加也可以
-DWITH_INNOBASE_STORAGE_ENGINE :支持MyISAM存储引擎,这个也是默认安装的
-DWITH_MEMORY_STORAGE_ENGINE :支持MEMORY存储引擎。
-DWITH_READLINE :使用readline功能,就是行编辑库,通过readline,可以方便的在命令行上面移动,增删,复制,粘贴,搜索。比如:
ctrl+r 可以搜索历史命令,很常用的一个 ctrl+a 到行首
ctrl+e 到行尾 ctrl+u 删除到行首 ctrl+k 删除到行尾
ctrl+l 类似 clear 命令效果 ctrl+y 粘贴
-DMYSQL_UNIX_ADDR :Socket文件存放到目录
-DMYSQL_TCP_PORT :默认服务端口号
-DENABLED_LOCAL_INFILE :允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE
-DEXTRA_CHARSETS :安装支持所有字符集
-DDEFAULT_CHARSET :默认编码
-DDEFAULT_COLLATION :默认校队字符集
运行完成以后继续使用make && make install完成安装。
cmake安装配置运行以后会生成一个CMakeCache.txt文件,如果安装没有成功,那么删除该文件解决完错误以后重新运行cmake命令。
mysql安装完成以后需要手动设置php.ini文件中的mysql.default_socket选项的值(如果使用mysqli连接那么就是mysqli.default_socket选项),这个选项上下的几项是默认端口,默认客户端等:
设置为cmake的配置中的-DMYSQL_UNIX_ADDR的值,在上面的例子中为/var/lib/mysql/mysql.sock
mysql.default_socket =/var/lib/mysql/mysql.sock,这样php才能与mysql连接
如果已经编译安装好,忘记了设置的值,可以在任何客户端连接mysql以后,执行语句:show variables like ‘socket‘;查看
复制配置文件和服务控制脚本到相应位置:
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
my.cnf这个mysql的主配置文件的常用参数:
basedir=/usr/local/mysql :mysql的安装目录
datadir=/usr/local/mysql/data :数据库目录
port =3306:指定服务端口,默认3306 端口
default-storage-engine=MyISAM/MyISAM :设定数据库默认引擎
symbolic-links=0 :禁用符号链接以防止各种安全风险
user=mysql :服务的映射系统用户名
log-error=/var/log/mysqld.log
socket=/var/lib/mysql/mysql.sock:套接字的文件路径(编译安装时-DMYSQL_UNIX_ADDR参数设定的值)
skip-external-locking :该参数没有值,表示禁止外部锁定,降低系统出错几率,当外部锁定(external-locking)起作用时,每个进程要访问数据表,必须等之前进程完成操作并解除锁定。在检查数据库或者修复、优化表时,你必须保证在此过程中MySQL服务器没有正在操作的表。否则数据表可能出现异常。注释掉该参数则默认开启外部锁定。
skip-name-resolve :该参数没有值,禁止mysql对外部连接进行DNS解析,可大幅节约服务响应时间
key_buffer_size=16M :设置索引缓存区大小,合理调节这个数值可以获得更好的索引处理性能,过度调大反而降低性能。参数没有可以自己添加
sort_buffer_size=512K :设置排序缓存区的大小 (每个连接独占)
read_buffer_size=256K :设置查询操作缓存区的大小 (每个连接独占)
join_buffer_size=1M :设置联合查询操作缓存区的大小 (每个连接独占)
max_connections :设置服务器最大连接进程数
server_id
配置并初始化mysql
1、添加用户并修改mysql安装目录的所有者和所属组为该用户,还要确保该用户对mysql的安装目录拥有执行权限(第2步做准备)。
useradd mysql
chown -R mysql.mysql /usr/local/mysql
chmod -R +x /usr/local/mysql
2、初始化mysql数据库
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
3、把mysql安装文件除了data以外的所有者设置为root,避免重复操作第二步初始化数据库而恢复为初始化状态。
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/data
4、使用mysql用户启动mysql服务
/usr/local/mysql/bin/mysqld_safe --user=mysql & :最后的&符号代表在后台运行。
或者已经添加了服务脚本/etc/init.d/mysqld可以使用service mysqld start启动mysql服务
5、测试mysql服务
/usr/local/mysql/bin/mysql -u username -p passwd
或者已经配置了执行mysql命令的环境变量可以直接使用mysql命令。
mysqladmin -u root password "newpasswd" -p :用于修改数据库密码
mysqladmin是Mysql服务器的管理程序,可用于执行检察配置文件、检查服务状态、关闭服务器、创建数据库以及删除数据库等的系统管理操作。其命令格式:mysqladmin 选项 参数
create db_name :创建一个名为db_name的新数据库
debug :将debug信息写入错误日志
drop db_name : 删除一个名为db_name的数据库
extended-status :显示服务器状态变量和他们的值
flush-hosts :刷新缓存中的所有信息
flush-logs :刷新所有日志信息
flush-privileges :重新载入授权表
flush-status :清除状态变量
flush-tables :刷新所有的表
flush-threads :刷新线程的缓存
ping :显示服务器运行状态
processlist :正在运行服务器线程的列表
password new_password :更改密码
shutdown :关闭服务器
start-slave :在从服务器上启动同步
stop-slave :在从服务器上关闭同步
-u username :指定用户
-h localhost :指定连接的主机
-p :指定需要输入密码